Справка по исключениям ColdFusion:coldfusion.runtime.NoOperScope нельзя привести к coldfusion.runtime.ApplicationScope
-
03-07-2019 - |
Вопрос
Я обнаружил причину исключения в строке CFINVOKEARGUMENT следующего фрагмента:
<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 он действительно содержит ожидаемые данные.
- com_VUI_RemoveIllegalChars вообще не изменился
- TTSText — допустимый столбец в наборе результатов.
- Я подозреваю, что это может быть проблема с конфигурацией ColdFusion.
Заранее благодарим всех, кто может пролить свет на причину этой проблемы.
РЕДАКТИРОВАТЬ:Полный дамп из журнала исключений:
«Ошибка», «jrpp-11», «01/06/09», «15:11:37», «Coldfusion.Runtime.NooperScope не может быть поднят в ColdFusion.Runtime.Applicationscope Специальная последовательность файлов включенных или обработанных является:C: inetpub wwwroot ermsvui proc_playsitestatus.cfm, строка:30 "java.lang.classcastException:ColdFusion.Runtime.NooperScope нельзя поднять на ColdFusion.Runtime.ApplicationsCope на ColdFusion.Runtime.RuntimeserviceImpl.getFullTagname (RunTimeServiceImpl.java:625) на Coldfusion.Runtime.TemptAtePRoxyFuctory.GetFulname (TemplateProxfuse.jruntime.jemplateProxyfortory.getfulname (templateProxfuse.jruntime. EmplateProxyFactory .resolvename (TemplateProxyFactory.java:184) на Coldfusion.Runtime.TemplateProxyFactory.Resolvename (TemplateProxyFactory.java:157) at coldfusion.runtime.templateProxyFactory.Resolvename (TemplateProxyFactory.javaRision.Raseprision.Raseprision.RasePARINASE.RATERIMESTARISEMANGEMARISE. ory.resolvename (TemplateProxyFactory. Java: 1218) на Coldfusion.tagext.lang.invoketag.doendtag (invoketag.java:358) на cfproc_playsitestatus2ecfm1824676963.runpage (c: inetpub wwwwroot ormsvui procliseState. Jsppage.invoke ( Cfjsppage.java:192) at coldfusion.tagext.lang.includetag.dostarttag (includeTag.java:366) на Coldfusion.filter.cfincludefilter.invoke (cfincludefilter.java:65) at coldfilter.plication.aplication. : 279) на Coldfusion.filter.RequestmonitorFilter.invoke (requestMonitorFilter.java:48) на Coldfusion.filter.MonitoringFilter.invoke (MonitoringFilter.java:40) на Coldfusion.filter.pathfilter.invoke (Pathfilter.java:86). .filter.licensefilter.invoke (Licensefilter.java:27) на ColdFusion.Filter.ExceptionFilter.invoke (ExceptionFilter.java:70) на ColdFusion.Filter.ClientScopePersistenceFilter.invoke (clientscopesistenceFilterSistenceFilterSistenceFilter invoke (browserfilter.java:38) по адресу coldfusion.filter.nocachefilter.invoke (nocachefilter.java:46) по адресу coldfusion.filter.globalsfilter.invoke (globalsfilter.java:38) на Coldfusion.filter.dataSourcefilter.InVokefilter.Invokefilter.Invokefilter.Invokefilter.Invokefilter.In -Java:38) на ColdFusion.filter.dataSourcefilter.In -Java:38). : 22) на coldfusion.cfmservlet.service (cfmservlet.java:175) на Coldfusion.bootstrap.bootstrapservlet.service (Bootstraperservlet.java:89) at jrun.servlet.monorit .event.monitoringservletfilter.dofilter (monitoringservletfilter.java:42) на Coldfusion.bootstrap.bootstrapfilter.dofilter (bootstrapfilter.java:46) на jrun.servlet.filterchain.dofilter (filterchain.java:94.shun Служба (FilterChain.java:101) на jrun.servlet.servletinvoker.invoke (servletinvoker.java:106) по адресу jrun.servlet.jruninvokerchain.invokenext (jruninvokerchain.java:42) jrun.servlet.jrunReclathr ава : 284) на jrun.servlet.servletengineservice.dispatch (ServletingNigneservice.java:543) по адресу jrun.servlet.jrpp.jrunproxyservice.invokerunnable (jrunproxyservice.java:203) At jrunx.scheduler.thready. : 320) на jrunx.scheduler.threadpool $ threadthrottle.invokerulable (threadpool.java:428) на jrunx.scheduler.threadpool $ upstreammetrics.invokerunnable (thratepool.java:266) at jrunx.scheduler )
Приведенный выше фрагмент кода содержит строки 28–32 файла proc_playsitestatus.cfm.
РЕДАКТИРОВАТЬ:
Значение текста TTS в этом случае: «Сообщение для проверки»
Источник com_VUI_RemoveIllegalChars:
<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>
Решение 2
Параметр «Включить переменные приложения» не был включен в конфигурации ColdFusion.
Другие советы
Вы уверены насчет этой строки №?Я думаю, что ошибка в самом методе CFC.Можете ли вы это проверить и, если я прав, опубликовать строку из метода CFC?
Без содержания com_VUI_RemoveIllegalChars
компонент и стоимость TTSText
переменная, здесь вы не даете нам многого.Не могли бы вы опубликовать их?(Я понимаю, что иногда вы не можете этого сделать по причинам, связанным с соглашением о неразглашении/и т. д.)