Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cfdump中出现奇怪的UnsupportedOperationException java错误_Java_Exception_Coldfusion - Fatal编程技术网

cfdump中出现奇怪的UnsupportedOperationException java错误

cfdump中出现奇怪的UnsupportedOperationException java错误,java,exception,coldfusion,Java,Exception,Coldfusion,当我们记录错误时,我们喜欢收集一些有关应用程序状态的信息,以帮助我们诊断原因。在我们的错误日志代码中,我们有如下内容: <cfset local.scopeList = "CGI,FORM,URL,APPLICATION,REQUEST,COOKIE,CLIENT" /> <cfsavecontent variable="local.errorInfo"> <cfloop list="#local.scopeList#" index="local.sco

当我们记录错误时,我们喜欢收集一些有关应用程序状态的信息,以帮助我们诊断原因。在我们的错误日志代码中,我们有如下内容:

<cfset local.scopeList = "CGI,FORM,URL,APPLICATION,REQUEST,COOKIE,CLIENT" />    
<cfsavecontent variable="local.errorInfo">
  <cfloop list="#local.scopeList#" index="local.scope">
    <cfdump var="#Evaluate(local.scope)#" />
  </cfloop>
</cfsavecontent>

实际上还有更多的内容(我们在尝试cfdump它之前检查local.scope是否已定义,以及其他一些与信息收集相关的内容,但这些是基本的内容)
local.errorInfo
是我们储存起来供以后查看的内容的一部分

偶尔我们会看到异常出现,TagContext显示错误发生在代码中的cfdump行上。有趣的是,在标记上下文中,我们的代码是第三项。前两个在\WEB-INF\cftags\dump.cfm中,它们的原始跟踪信息如下

位于cfdump2ecfm1568701689.\u factor4({path on server}\WEB-INF\cftags\dump.cfm)

位于cfdump2ecfm1568701689.\u factor1({path on server}\WEB-INF\cftags\dump.cfm)

exception结构中的实际消息项为空字符串,类型为
java.lang.UnsupportedOperationException

奇怪的是,如果我们手动运行这个精确的代码,它会清除问题,并且在一段时间内一切正常,但当它再次发生时,它将继续发生,直到我们通过再次手动运行代码来“踢它一脚”。就像有些东西不稳定了,只有我们帮助它,它才能恢复

我们使用的是CF10和AFAIK,我们还没有升级过CF或Java,距离第一次升级的时间很近

我的问题是,这是什么原因造成的?(如果您能解释为什么我们的解决方案会暂时“修复”它,那么您将获得额外奖励。)

编辑这里有一点堆栈跟踪,从顶部开始:

java.lang.UnsupportedOperationException位于 coldfusion.thread.HttpServletRequestWrapper.getLocalPort(HttpServletRequestWrapper.java:446) 位于coldfusion.runtime.CgiScope.resolve(CgiScope.java:146) coldfusion.runtime.CgiScope.resolveName(CgiScope.java:328)位于 coldfusion.runtime.Scope.get(Scope.java:60)位于 coldfusion.runtime.dotsolver.resolve(dotsolver.java:45)位于 coldfusion.runtime.dotsolver.resolve(dotsolver.java:72)位于 coldfusion.runtime.dotsolver.resolve(dotsolver.java:88)位于 coldfusion.runtime.NeoPageContext.SymTab_resolveSplitName(NeoPageContext.java:1033) 在 coldfusion.runtime.NeoPageContext.SymTab_resolvedDottedName(NeoPageContext.java:1011) 在 coldfusion.runtime.NeoPageContext.findAttribute(NeoPageContext.java:657) 在 coldfusion.runtime.NeoPageContext.findAttribute(NeoPageContext.java:630) 在coldfusion.runtime.CFPage.IsDefined(CFPage.java:925)中 cfdump2ecfm1568701689$funcDUMPSTRUCT.runFunction(E:\cf10\u final\cfusion\wwwroot\WEB-INF\cftags\dump.cfm:1957) 在coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)中 调用(SilentFilter.java:47) coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368) 在 调用(FunctionAccessFilter.java:55) 在coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)中 位于的coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:518) coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2624)位于 cfdump2ecfm1568701689$funcHANDLESTRUCT.runFunction(E:\cf10\u final\cfusion\wwwroot\WEB-INF\cftags\dump.cfm:781) 在coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)中 调用(SilentFilter.java:47) coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368) 在 调用(FunctionAccessFilter.java:55) 在coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)中 位于的coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:518) coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2624)位于 cfdump2ecfm1568701689$funcRENDEROUTPUT.runFunction(E:\cf10\u final\cfusion\wwwroot\WEB-INF\cftags\dump.cfm:693) 在coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472)中 调用(SilentFilter.java:47) coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368) 在 调用(FunctionAccessFilter.java:55) 在coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:321)中 coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:220)位于 coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2659)位于 cfdump2ecfm1568701689._factor18(E:\cf10\u final\cfusion\wwwroot\WEB-INF\cftags\dump.cfm:565)位于


我认为示波器不应该这样倾倒。展开你的cfloop,你会没事的


与变量不同,作用域是一种不同的动物。我认为动态引用作用域本身是不自然的,因此我并不奇怪
Evaluate
会出错。

UnsupportedOperationException
是许多类使用的通用异常。所以原因可能有很多。顾名思义,它用于表示您正在做的事情(或cfdump正在做的事情)不受支持。你能发布完整的堆栈跟踪吗?它可能会提供导致问题的操作的一些线索。此外,当错误发生时,您是否能够判断正在评估的
local
元素是什么?我想知道它是否a)可能与
evaluate
的用法有关,以及b)您是否真的需要
evaluate
。您可以使用结构表示法
local[keyName]
来代替吗?啊,是的-我本来打算包含一点堆栈跟踪,但忘记了。我会用这个更新这个问题。至于我,我喜欢那个主意。与其处理表示我们想要转储的作用域的字符串列表,不如使用实际作用域的数组。我来试试,看看结果如何。谢谢我们想要的是实际情况