Guida eccezione ColdFusion: coldfusion.runtime.NoOperScope non può essere trasmesso a coldfusion.runtime.ApplicationScope

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

  •  03-07-2019
  •  | 
  •  

Domanda

Riscontro una causa di eccezione dalla riga CFINVOKEARGUMENT del seguente frammento:

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

Il testo esatto dell'eccezione è:

  

Errore durante il cast di un oggetto di tipo   coldfusion.runtime.NoOperScope impossibile   essere scelto per   coldfusion.runtime.ApplicationScope a   un tipo incompatibile. Questo di solito   indica un errore di programmazione in Java,   anche se potrebbe anche significare che hai   provato a usare un oggetto estraneo in a   modo diverso da come è stato progettato.   coldfusion.runtime.NoOperScope impossibile   essere scelto per   coldfusion.runtime.ApplicationScope

Note:

  • cfmx.Messages è un oggetto restituito in un CFPROCRESULT e all'esame tramite CFDUMP contiene i dati previsti
  • com_VUI_RemoveIllegalChars non è cambiato affatto
  • TTSText è una colonna valida nel set di risultati
  • Il mio sospetto è che questo potrebbe essere un problema di configurazione di ColdFusion

Grazie in anticipo a chiunque possa far luce su ciò che potrebbe causare questo problema.

EDIT: dump completo dal registro delle eccezioni:

  

" errore " " jrpp-11 " " 01 Senza / 06/09 " " 15: 11: 37 " ,, " coldfusion.runtime.NoOperScope   non può essere assegnato a   coldfusion.runtime.ApplicationScope   La sequenza specifica di file   incluso o elaborato è:   C: \ Inetpub \ wwwroot \ ermsvui \ proc_playsitestatus.cfm,   riga: 30 "   java.lang.ClassCastException:   coldfusion.runtime.NoOperScope impossibile   essere scelto per   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)

Lo snippet di codice sopra riportato contiene le righe 28 - 32 di proc_playsitestatus.cfm

EDIT:

Il valore del testo TTS in questo caso è " Il messaggio per il test è "

La fonte di 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>
È stato utile?

Soluzione 2

L'impostazione " Abilita variabili applicazione " non era abilitato nella configurazione di ColdFusion.

Altri suggerimenti

Sei sicuro di quella linea #? Sto pensando che l'errore sia nel metodo CFC stesso. Puoi verificarlo e, se ho ragione, pubblicare la riga dal metodo CFC?

Senza il contenuto del componente com_VUI_RemoveIllegalChars e il valore della variabile TTSText , qui non ci stai dando molto da fare. Potresti postare quelli? (Capisco che a volte non è possibile per motivi NDA / ecc.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top