Ayuda de excepción de ColdFusion: coldfusion.runtime.NoOperScope no se puede convertir en coldfusion.runtime.ApplicationScope

StackOverflow https://stackoverflow.com/questions/417843

  •  03-07-2019
  •  | 
  •  

Pregunta

Estoy encontrando una causa de excepción en la línea CFINVOKEARGUMENT del siguiente fragmento de código:

<CFOUTPUT query="cfmx.Messages"><CFSILENT>
<CFINVOKE component="com_VUI_RemoveIllegalChars" method="formatString" returnvariable="cfmx.formattedMessage">
   <CFINVOKEARGUMENT name="inString" value="#TTSText#">
</CFINVOKE>
</CFSILENT>

El texto exacto de la excepción es:

  

Error al lanzar un objeto de tipo   coldfusion.runtime.NoOperScope no puede   ser echado a   coldfusion.runtime.ApplicationScope to   Un tipo incompatible. Esto usualmente   indica un error de programación en Java,   aunque también podría significar que tienes   intentado usar un objeto extraño en una   Manera diferente a la que fue diseñada.   coldfusion.runtime.NoOperScope no puede   ser echado a   coldfusion.runtime.ApplicationScope

Notas:

  • cfmx.Messages es un objeto devuelto en un CFPROCRESULT, y tras un examen a través de CFDUMP contiene los datos esperados
  • com_VUI_RemoveIllegalChars no ha cambiado en absoluto
  • TTSText es una columna válida en el conjunto de resultados
  • Mi sospecha es que esto puede ser un problema de configuración de ColdFusion

Gracias de antemano a cualquiera que pueda arrojar alguna luz sobre lo que puede estar causando este problema.

EDITAR: complete el volcado desde el registro de excepciones:

  

" Error ", " jrpp-11 ", " 01/06/09 ", 15: 11: 37 " ;, " coldfusion.runtime.NoOperScope   No puede ser enviado a   coldfusion.runtime.ApplicationScope   La secuencia específica de archivos.   Incluido o procesado es:   C: \ Inetpub \ wwwroot \ ermsvui \ proc_playsitestatus.cfm,   línea: 30 "   java.lang.ClassCastException:   coldfusion.runtime.NoOperScope no puede   ser echado a   coldfusion.runtime.ApplicationScope     a   coldfusion.runtime.RuntimeServiceImpl.getFullTagName (RuntimeServiceImpl.java:625)     a   coldfusion.runtime.TemplateProxyFactory.getFullName (TemplateProxyFactory.java:1082)     a   coldfusion.runtime.TemplateProxyFactory.resolveName (TemplateProxyFactory.java:184)     a   coldfusion.runtime.TemplateProxyFactory.resolveName (TemplateProxyFactory.java:157)     a   coldfusion.runtime.TemplateProxyFactory.resolveName (TemplateProxyFactory.java:1267)     a   coldfusion.runtime.TemplateProxyFactory.resolveName (TemplateProxyFactory.java:1218)     a   coldfusion.tagext.lang.InvokeTag.doEndTag (InvokeTag.java:358)     a   cfproc_playsitestatus2ecfm1824676963.runPage (C: \ Inetpub \ wwwroot \ ermsvui \ proc_playsitestatus.cfm: 30)     a   coldfusion.runtime.CfJspPage.invoke (CfJspPage.java:192)     a   coldfusion.tagext.lang.IncludeTag.doStartTag (IncludeTag.java:366)     a   coldfusion.filter.CfincludeFilter.invoke (CfincludeFilter.java:65)     a   coldfusion.filter.ApplicationFilter.invoke (ApplicationFilter.java:279)     a   coldfusion.filter.RequestMonitorFilter.invoke (RequestMonitorFilter.java:48)     a   coldfusion.filter.MonitoringFilter.invoke (MonitoringFilter.java:40)     a   coldfusion.filter.PathFilter.invoke (PathFilter.java:86)     a   coldfusion.filter.LicenseFilter.invoke (LicenseFilter.java:27)     a   coldfusion.filter.ExceptionFilter.invoke (ExceptionFilter.java:70)     a   coldfusion.filter.ClientScopePersistenceFilter.invoke (ClientScopePersistenceFilter.java:28)     a   coldfusion.filter.BrowserFilter.invoke (BrowserFilter.java:38)     a   coldfusion.filter.NoCacheFilter.invoke (NoCacheFilter.java:46)     a   coldfusion.filter.GlobalsFilter.invoke (GlobalsFilter.java:38)     a   coldfusion.filter.DatasourceFilter.invoke (DatasourceFilter.java:22)     a   coldfusion.CfmServlet.service (CfmServlet.java:175)     a   coldfusion.bootstrap.BootstrapServlet.service (BootstrapServlet.java:89)     a   jrun.servlet.FilterChain.doFilter (FilterChain.java:86)     a   coldfusion.monitor.event.MonitoringServletFilter.doFilter (MonitoringServletFilter.java:42)     a   coldfusion.bootstrap.BootstrapFilter.doFilter (BootstrapFilter.java:46)     a   jrun.servlet.FilterChain.doFilter (FilterChain.java:94)     a   jrun.servlet.FilterChain.service (FilterChain.java:101)     a   jrun.servlet.ServletInvoker.invoke (ServletInvoker.java:106)     a   jrun.servlet.JRunInvokerChain.invokeNext (JRunInvokerChain.java:42)     a   jrun.servlet.JRunRequestDispatcher.invoke (JRunRequestDispatcher.java:284)     a   jrun.servlet.ServletEngineService.dispatch (ServletEngineService.java:543)     a   jrun.servlet.jrpp.JRunProxyService.invokeRunnable (JRunProxyService.java:203)     a   jrunx.scheduler.ThreadPool $ DownstreamMetrics.invokeRunnable (ThreadPool.java:320)     a   jrunx.scheduler.ThreadPool $ ThreadThrottle.invokeRunnable (ThreadPool.java:428)     a   jrunx.scheduler.ThreadPool $ UpstreamMetrics.invokeRunnable (ThreadPool.java:266)     a   jrunx.scheduler.WorkerThread.run (WorkerThread.java:66)

El fragmento de código anterior contiene las líneas 28 a 32 de proc_playsitestatus.cfm

EDITAR:

El valor del texto TTS en este caso es " El mensaje de prueba es "

La fuente de 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>
¿Fue útil?

Solución 2

La configuración " Habilitar variables de aplicación " no se habilitó en la configuración de ColdFusion.

Otros consejos

¿Estás seguro de esa línea #? Estoy pensando que el error está en el propio método CFC. ¿Puede verificar eso y, si tengo razón, publicar la línea desde el método CFC?

Sin el contenido del componente com_VUI_RemoveIllegalChars y el valor de la variable TTSText , no nos está dando mucho para continuar, aquí. ¿Podrías publicar esos? (Entiendo que a veces no se puede por razones NDA / etc)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top