Aide relative à l'exception ColdFusion: coldfusion.runtime.NoOperScope ne peut pas être converti en coldfusion.runtime.ApplicationScope.

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

  •  03-07-2019
  •  | 
  •  

Question

Je rencontre une cause d'exception de la ligne CFINVOKEARGUMENT de l'extrait de code suivant:

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

Le texte exact de l'exception est:

  

Erreur lors de la conversion d'un objet de type   coldfusion.runtime.NoOperScope ne peut pas   être jeté sur   coldfusion.runtime.ApplicationScope à   un type incompatible. Ce généralement   indique une erreur de programmation en Java,   bien que cela puisse aussi signifier que vous avez   essayé d'utiliser un objet étranger dans un   manière différente de celle qui a été conçue.   coldfusion.runtime.NoOperScope ne peut pas   être jeté sur   coldfusion.runtime.ApplicationScope

Notes:

  • cfmx.Messages est un objet renvoyé dans un CFPROCRESULT et, après examen via CFDUMP, contient les données attendues
  • com_VUI_RemoveIllegalChars n'a pas du tout changé
  • TTSText est une colonne valide dans le jeu de résultats
  • Je pense que cela pourrait être un problème de configuration ColdFusion

Merci d'avance à tous ceux qui peuvent nous éclairer sur les causes possibles de ce problème.

EDIT: dump complet à partir du journal des exceptions:

  

"Erreur", "jrpp-11", "01/06/09", "15: 11: 37", "coldfusion.runtime.NoOperScope   ne peut pas être jeté sur   coldfusion.runtime.ApplicationScope   La séquence spécifique de fichiers   inclus ou traité est:   C: \ Inetpub \ wwwroot \ ermsvui \ proc_playsitestatus.cfm,   ligne: 30 "   java.lang.ClassCastException:   coldfusion.runtime.NoOperScope ne peut pas   être jeté sur   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)

L'extrait de code ci-dessus contient les lignes 28 à 32 de proc_playsitestatus.cfm

EDIT:

La valeur du texte TTS est que la casse est "Le message à tester est"

.

La source 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>
Était-ce utile?

La solution 2

Le paramètre "Activer les variables d'application" n’était pas activé dans la configuration ColdFusion.

Autres conseils

Êtes-vous sûr de cette ligne #? Je pense que l'erreur est dans la méthode CFC elle-même. Pouvez-vous vérifier cela, et si je ne me trompe pas, affichez la ligne de la méthode CFC?

Sans le contenu du composant com_VUI_RemoveIllegalChars et la valeur de la variable TTSText , vous ne nous en donnez pas beaucoup, ici. Pourriez-vous les poster? (Je comprends que parfois vous ne pouvez pas pour des raisons NDA / etc)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top