1

以下代码适用于 Adob​​e ColdFusion 9.01+,但不适用于 Railo 4.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.HttpServletRequestDummy.clone(HttpServletRequestDummy.java:677):677 在 railo.java.lang.NullPointerException 在 railo.runtime.net.http.HttpUtil.cloneParameters(HttpUtil.java:66):66。 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.ThreadTag.register(ThreadTag.java:269):269 在 scorecard38.application_cfc$cf.udfCall(D:\railo\webapps\www\Scorecard38\Application.cfc:162):162在 railo.runtime.type.UDFImpl.implementation(UDFImpl.java:94):94

胡乱猜测

variables.rc没有被复制到线程中

4

2 回答 2

1

variables.rc除非您将其添加为参数,否则不会将其复制到线程中。添加rc为参数,然后variables.rc您将通过arguments.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并转储您的 cfthread 以查看错误。下面的代码将输出“变量 C 未定义”

<cfthread name="threadA" action="run">
  <cfset b = c>
</cfthread>
<cfdump var="#cfthread#"><cfabort>
于 2013-12-17T04:15:56.023 回答
1

我和你有同样的问题。您正在使用 CGI 变量,这就是导致问题的原因

于 2014-04-28T23:00:30.647 回答