Справка по исключению ColdFusion: coldfusion.runtime.NoOperScope нельзя преобразовать в coldfusion.runtime.ApplicationScope - PullRequest
3 голосов
/ 06 января 2009

Я обнаружил причину исключения в строке 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 to несовместимый тип. Это обычно указывает на ошибку программирования в 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.TemplateProxyFactory.getFullName (TemplateProxyFactory.java:1082) в coldfusion.runtime.TemplateProxyFactory.resolveName (TemplateProxyFactory.java:184) в coldfusion.runtime.TemplateProxyFactory.resolveName (TemplateProxyFactory.java:157) в coldfusion.runtime.TemplateProxyFactory.resolveName (TemplateProxyFactory.java:1267) в coldfusion.runtime.TemplateProxyFactory.resolveName (TemplateProxyFactory.java:1218) в coldfusion.tagext.lang.InvokeTag.doEndTag (InvokeTag.java:358) в cfproc_playsitestatus2ecfm1824676963.runPage (C: \ Inetpub \ Wwwroot \ ermsvui \ proc_playsitestatus.cfm: 30) в coldfusion.runtime.CfJspPage.invoke (CfJspPage.java:192) в coldfusion.tagext.lang.IncludeTag.doStartTag (IncludeTag.java:366) в coldfusion.filter.CfincludeFilter.invoke (CfincludeFilter.java:65) в coldfusion.filter.ApplicationFilter.invoke (ApplicationFilter.java:279) в coldfusion.filter.RequestMonitorFilter.invoke (RequestMonitorFilter.java:48) в coldfusion.filter.MonitoringFilter.invoke (MonitoringFilter.java:40) в coldfusion.filter.PathFilter.invoke (PathFilter.java:86) в coldfusion.filter.LicenseFilter.invoke (LicenseFilter.java:27) в coldfusion.filter.ExceptionFilter.invoke (ExceptionFilter.java:70) в coldfusion.filter.ClientScopePersistenceFilter.invoke (ClientScopePersistenceFilter.java:28) в 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.FilterChain.doFilter (FilterChain.java:86) в 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) в jrun.servlet.ServletEngineService.dispatch (ServletEngineService.java:543) в jrun.servlet.jrpp.JRunProxyService.invokeRunnable (JRunProxyService.java:203) в jrunx.scheduler.ThreadPool $ DownstreamMetrics.invokeRunnable (ThreadPool.java:320) в jrunx.scheduler.ThreadPool $ ThreadThrottle.invokeRunnable (ThreadPool.java:428) в jrunx.scheduler.ThreadPool $ UpstreamMetrics.invokeRunnable (ThreadPool.java:266) в jrunx.scheduler.WorkerThread.run (WorkerThread.java:66)

Приведенный выше фрагмент кода содержит строки 28 - 32 proc_playsitestatus.cfm

EDIT:

Значение текста 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>

Ответы [ 3 ]

2 голосов
/ 06 января 2009

Ты уверен насчет этой строки #? Я думаю, что ошибка в самом методе CFC. Можете ли вы проверить это, и если я прав, опубликуйте строку из метода CFC?

1 голос
/ 07 января 2009

Параметр «Включить переменные приложения» не был включен в конфигурации ColdFusion.

0 голосов
/ 07 января 2009

Без содержания компонента com_VUI_RemoveIllegalChars и значения переменной TTSText, вы не дадите нам многого, чтобы продолжить, здесь. Не могли бы вы опубликовать их? (Я понимаю, что иногда вы не можете по причинам NDA / и т.д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...