首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ColdFusion异常帮助:无法将coldfusion.runtime.NoOperScope转换为coldfusion.runtime.ApplicationScope

ColdFusion异常帮助:无法将coldfusion.runtime.NoOperScope转换为coldfusion.runtime.ApplicationScope
EN

Stack Overflow用户
提问于 2009-01-06 19:48:32
回答 3查看 1.5K关注 0票数 3

我遇到了由以下代码段的CFINVOKEARGUMENT行引起的异常:

代码语言:javascript
复制
<CFOUTPUT query="cfmx.Messages"><CFSILENT>
<CFINVOKE component="com_VUI_RemoveIllegalChars" method="formatString" returnvariable="cfmx.formattedMessage">
   <CFINVOKEARGUMENT name="inString" value="#TTSText#">
</CFINVOKE>
</CFSILENT>

这一例外的确切案文是:

错误将类型为coldfusion.runtime.NoOperScope的对象转换为不兼容类型的coldfusion.runtime.ApplicationScope。这通常表示Java中存在编程错误,尽管这也可能意味着您试图以与设计不同的方式使用外部对象。不能将coldfusion.runtime.NoOperScope转换为coldfusion.runtime.ApplicationScope

备注:

  • cfmx.Messages是CFPROCRESULT中返回的对象,通过CFDUMP进行检查时,它确实包含了预期的
  • TTSText是结果集
  • 中的一个有效列,我怀疑这可能是ColdFusion配置问题

事先感谢任何人谁能说明什么可能导致这一问题。

编辑:从异常日志中完成转储:

“错误”、"jrpp-11“、"01/06/09”、"15:11:37“、”不能将C:\Inetpub\wwwroot\ermsvui\proc_playsitestatus.cfm,转换为coldfusion.runtime.ApplicationScope“包括或处理的文件的特定顺序为:

行: 30“java.lang.ClassCastException:不能在coldfusion.runtime.RuntimeServiceImpl.getFullTagName(RuntimeServiceImpl.java:625) at coldfusion.runtime.TemplateProxyFactory.getFullName(TemplateProxyFactory.java:1082) at coldfusion.runtime.TemplateProxyFactory.resolveName(TemplateProxyFactory.java:184) at coldfusion.runtime.TemplateProxyFactory.resolveName(TemplateProxyFactory.java:157) at coldfusion.runtime.TemplateProxyFactory.resolveName(TemplateProxyFactory.java:1267)上把coldfusion.runtime.NoOperScope投给coldfusion.runtime.ApplicationScope在coldfusion.runtime.TemplateProxyFactory.resolveName(TemplateProxyFactory.java:1218) at coldfusion.tagext.lang.InvokeTag.doEndTag(InvokeTag.java:358) at cfproc_playsitestatus2ecfm1824676963.runPage(C:\Inetpub\wwwroot\ermsvui\proc_playsitestatus.cfm:30) at coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:192) at coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:366) at coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)在coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:279) at coldfusion.filter.RequestMonitorFilter.invoke(RequestMonitorFilter.java:48) at coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40) at coldfusion.filter.PathFilter.invoke(PathFilter.java:86) at coldfusion.filter.LicenseFilter.invoke(LicenseFilter.java:27) at coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70) at coldfusion.filter.ClientScopePersistenceFilter.invoke(在coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38),coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46),coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38),coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22),coldfusion.CfmServlet.service(CfmServlet.java:175),coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89),jrun.servlet。coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42),coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46),jrun.servlet.FilterChain.doFilter(FilterChain.java:94),jrun.servlet.FilterChain.service(FilterChain.java:101),jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106),jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)在jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:284) at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543) at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203) at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320) at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428) at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266) at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

上面的代码片段包含proc_playsitestatus.cfm的第28-32行。

编辑:

TTS文本的值是这样的:“用于测试的消息是

Com_VUI_RemoveIllegalChars的来源:

代码语言:javascript
复制
<CFCOMPONENT displayname="Format a string for use in VoiceXML" hint="returns a string formatted for voiceXML" output="yes">
    <CFFUNCTION name="formatString" access="public" returntype="string" displayname="Format String" hint="Formats String for VoiceXML">
        <cfargument name="inString" type="string" required="true" displayname="input string" hint="pass in the string to be formatted">
        <CFSET v.messageWithoutChars = replace(inString, "<", "", "all")>
        <CFSET v.messageWithoutChars = replace(v.messageWithoutChars, ">", "", "all")>
        <CFSET v.messageWithoutChars = replace(v.messageWithoutChars, "&", "and", "all")>
        <CFSET v.messageWithoutChars = REReplace(v.messageWithoutChars, "\.+", ".", "all")>
        <CFSET v.messageWithoutChars = replace(v.messageWithoutChars, "!", ".", "all")>
        <CFSET v.messageWithoutChars = replace(v.messageWithoutChars, "\", " ", "all")>
        <CFSET v.messageWithoutChars = replace(v.messageWithoutChars, "/", " ", "all")>
        <CFSET v.messageWithoutChars = REReplace(v.messageWithoutChars, "[[:punct:]]{2,}", " ", "all")>
        <cfreturn v.messageWithoutChars>
    </CFFUNCTION>
</CFCOMPONENT>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-01-07 16:04:55

在ColdFusion配置中没有启用“启用应用程序变量”设置。

票数 1
EN

Stack Overflow用户

发布于 2009-01-06 20:12:57

你确定那条线#吗?我想这是CFC方法本身的错误。你能检查一下吗,如果我是对的,把CFC方法中的行贴出来?

票数 2
EN

Stack Overflow用户

发布于 2009-01-07 13:15:39

在这里,如果没有com_VUI_RemoveIllegalChars组件的内容和TTSText变量的值,您就不会给我们提供太多的内容。你能把这些寄出去吗?(我知道有时你不能因为NDA/等原因)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/417843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档