【发布时间】:2013-12-17 03:06:31
【问题描述】:
以下代码适用于 Adobe ColdFusion 9.01+,但不适用于 Railo 4.1
此外,这仅在 Post 上失败
此代码在 application.cfc 中的 FW/1 setupRequest() 内部调用
<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>
错误
java.lang.NullPointerException 在 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.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 没有被复制到线程中
【问题讨论】:
-
如果你想测试你的理论,给自己邮寄一份来自该线程的变量范围的转储。
-
我错过了什么,cfcatch 标记的起点在哪里?
-
<cfcatch />与<cfcatch></cfcatch>相同。基本上它会捕获错误并且从不显示或执行任何操作
标签: coldfusion railo cfml application.cfc fw1