下面的代码在Adobe 9.01+上工作,但不使用Railo4.1
而且,这仅在Post上失败。
此代码在setupRequest()中的FW/1 application.cfc中调用。
<cfthread name="threadA" action="run">
<cftry>
<cfquery>
INSERT
INTO dbo.Traffic (Circuit, Fuseaction, IP_hash)
VALUES (<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#listfirst(variables.rc.fuseaction, '.')#">,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#listlast(variables.rc.fuseaction, '.')#">,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#cgi.remote_addr#">
)
</cfquery>
<cfcatch />
</cftry>
</cfthread>误差
railo.runtime.net.http.HttpUtil.cloneParameters(HttpUtil.java:66):66,railo.runtime.net.http.HttpServletRequestDummy.clone(HttpServletRequestDummy.java:677):677,railo.runtime.thread.ThreadUtil.cloneHttpServletRequest(ThreadUtil.java:67):67,railo.runtime.thread.ThreadUtil.clonePageContext(ThreadUtil.java:29):29,railo.runtime.thread.ChildThreadImpl.(ChildThreadImpl.java:101):101,railo.runtime.tag。scorecard38.application_cfc$cf.udfCall(D:\railo\webapps\www\Scorecard38\Application.cfc:162):162 at railo.runtime.type.UDFImpl.implementation(UDFImpl.java:94):94 ThreadTag.register(ThreadTag.java:269):269
野生猜
variables.rc不会被复制到线程中。
发布于 2013-12-17 04:15:56
除非将variables.rc作为参数添加,否则不会将它复制到线程中。添加rc作为参数,然后通过arguments.rc访问它而不是variables.rc
<cfthread name="threadA" action="run" rc="#variables.rc#">
<cftry>
<cfquery>
INSERT INTO dbo.Traffic (Circuit, Fuseaction, IP_hash)
VALUES (<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#listfirst(arguments.rc.fuseaction, '.')#">,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#listlast(arguments.rc.fuseaction, '.')#">,
<cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#cgi.remote_addr#">
)
</cfquery>
<cfcatch />
</cftry>
</cfthread>如果这样做不起作用,您将不得不删除try/catch并将cf线程转储出来以查看错误。下面的代码将输出“变量C未定义”
<cfthread name="threadA" action="run">
<cfset b = c>
</cfthread>
<cfdump var="#cfthread#"><cfabort>发布于 2014-04-28 23:00:30
我也有同样的问题就是你。您正在使用CGI变量,这就是导致问题的原因
https://stackoverflow.com/questions/20625158
复制相似问题