执行mule表达式时发生异常

执行mule表达式时发生异常,mule,mule-esb,Mule,Mule Esb,我在下面写了导致ExpressionRuntimeException的表达式 这段代码有什么问题吗? 注意:此代码在多次运行中仅失败一次 <expression-component doc:name="Expression"><![CDATA[ flowVars['flowType'] = "CacheServicePageData"; flowVars['recordKey']=com.xyz.connect.util.ConnectRedisUtil.buildAndRet

我在下面写了导致ExpressionRuntimeException的表达式

这段代码有什么问题吗? 注意:此代码在多次运行中仅失败一次

<expression-component doc:name="Expression"><![CDATA[
flowVars['flowType'] = "CacheServicePageData";
flowVars['recordKey']=com.xyz.connect.util.ConnectRedisUtil.buildAndReturnREDISCacheKey(sessionVars.cdmID, payload.pageNumber);
flowVars['pageNumber']=payload.pageNumber;
flowVars['pageSize']=payload.pageSize;]]>
</expression-component>

有一些非常不寻常的错误正在发生,导致“无上下文”错误。我会尝试为每个flowVar使用一个单独的赋值,以便更好地查看哪个失败

以前在Java中执行的某些操作可能会破坏执行上下文。查看之前执行的所有Java代码使用情况

可能存在一些与MEL相关的问题,在以后的版本中已修复。目前最新的Mule 3.x版本是3.9.4。它可能有帮助,也可能没有帮助,但至少以前版本中的所有已知问题都将得到修复


另一种选择是使用脚本组件,它来自您已经尝试过的一些堆栈跟踪。不清楚结果是什么。

您确定错误堆栈跟踪中没有更多的行吗?更多的行可以包括一个根本原因,这将有助于确定问题。这到底是什么Mule版本?谢谢回复。运行时为3.8.5,发现更多日志,请查看更新的案例。这是单个堆栈跟踪还是附加了多个错误?有混合表达式组件跟踪和脚本组件跟踪混合在一起是没有意义的。此外,在此错误之前是否执行过其他Java组件、自定义转换器等?@aled I组合了两个不同的异常堆栈跟踪,由于stackoverflow允许的字符数限制,还删除了一些行。
********************************************************************************
Message               : Execution of the expression "
flowVars['flowType'] = "CacheServicePageData";
flowVars['recordKey']=com.xyz.connect.util.ConnectRedisUtil.buildAndReturnREDISCacheKey(sessionVars.cdmID, payload.pageNumber);
flowVars['pageNumber']=payload.pageNumber;
flowVars['pageSize']=payload.pageSize;" failed. (org.mule.api.expression.ExpressionRuntimeException).
Element               : /payroll-cdm-process-page/processors/1 @ connect-cdm-core-settlement-id:payroll-cdm-batch.xml:429 (Expression)
--------------------------------------------------------------------------------
Exception stack is:
Execution of the expression "
flowVars['flowType'] = "CacheServicePageData";
flowVars['recordKey']=com.xyz.connect.util.ConnectRedisUtil.buildAndReturnREDISCacheKey(sessionVars.cdmID, payload.pageNumber);
flowVars['pageNumber']=payload.pageNumber;
flowVars['pageSize']=payload.pageSize;" failed. (org.mule.api.expression.ExpressionRuntimeException). (org.mule.api.MessagingException)
  org.mule.mvel2.ParserContext.getVariableScope(ParserContext.java:706)
  org.mule.mvel2.ParserContext.initializeTables(ParserContext.java:445)
  org.mule.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:124)
  org.mule.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:63)
  org.mule.mvel2.MVEL.analysisCompile(MVEL.java:681)
  org.mule.mvel2.MVEL.analysisCompile(MVEL.java:685)
  org.mule.mvel2.compiler.PropertyVerifier.getCollectionProperty(PropertyVerifier.java:443)
  org.mule.mvel2.compiler.PropertyVerifier.analyze(PropertyVerifier.java:126)
  org.mule.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeSetAccessor(ReflectiveAccessorOptimizer.java:278)
  org.mule.mvel2.compiler.CompiledAccExpression.setValue(CompiledAccExpression.java:68)
  org.mule.mvel2.ast.AssignmentNode.getReducedValueAccelerated(AssignmentNode.java:111)
  org.mule.mvel2.MVELRuntime.execute(MVELRuntime.java:86)
  org.mule.mvel2.compiler.CompiledExpression.getDirectValue(CompiledExpression.java:123)
  org.mule.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:119)
  org.mule.mvel2.MVEL.executeExpression(MVEL.java:953)


Caused by: javax.script.ScriptException: java.lang.Exception: org.mule.api.MessagingException: Execution of the expression "
flowVars['flowType'] = "CacheServicePageData";
flowVars['recordKey']=com.xyz.connect.util.ConnectRedisUtil.buildAndReturnREDISCacheKey(sessionVars.cdmID, payload.pageNumber);
flowVars['pageNumber']=payload.pageNumber;
flowVars['pageSize']=payload.pageSize;" failed. (org.mule.api.expression.ExpressionRuntimeException).
    at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:326) ~[groovy-all-2.4.4-indy.jar:2.4.4]
    at org.codehaus.groovy.jsr223.GroovyCompiledScript.eval(GroovyCompiledScript.java:44) ~[groovy-all-2.4.4-indy.jar:2.4.4]
    at javax.script.CompiledScript.eval(CompiledScript.java:92) ~[?:1.8.0_101]
    at org.mule.module.scripting.component.Scriptable.runScript(Scriptable.java:372) ~[mule-module-scripting-3.8.5.jar:3.8.5]
    at org.mule.module.scripting.component.ScriptComponent.doInvoke(ScriptComponent.java:78) ~[mule-module-scripting-3.8.5.jar:3.8.5]
    at org.mule.component.AbstractComponent.invokeInternal(AbstractComponent.java:120) ~[mule-core-3.8.5.jar:3.8.5]
    ... 69 more
Caused by: java.lang.Exception: org.mule.api.MessagingException: Execution of the expression "
flowVars['flowType'] = "CacheServicePageData";
flowVars['recordKey']=com.xyz.connect.util.ConnectRedisUtil.buildAndReturnREDISCacheKey(sessionVars.cdmID, payload.pageNumber);
flowVars['pageNumber']=payload.pageNumber;
flowVars['pageSize']=payload.pageSize;" failed. (org.mule.api.expression.ExpressionRuntimeException).
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_101]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_101]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_101]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_101]
    at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:80) ~[groovy-all-2.4.4-indy.jar:2.4.4]
    at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:105) ~[groovy-all-2.4.4-indy.jar:2.4.4]
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:60) ~[groovy-all-2.4.4-indy.jar:2.4.4]
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:235) ~[groovy-all-2.4.4-indy.jar:2.4.4]
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:247) ~[groovy-all-2.4.4-indy.jar:2.4.4]
    at Script175.run(Script175.groovy:1) ~[?:?]
    at org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.eval(GroovyScriptEngineImpl.java:323) ~[groovy-all-2.4.4-indy.jar:2.4.4]
    at org.codehaus.groovy.jsr223.GroovyCompiledScript.eval(GroovyCompiledScript.java:44) ~[groovy-all-2.4.4-indy.jar:2.4.4]
    at javax.script.CompiledScript.eval(CompiledScript.java:92) ~[?:1.8.0_101]
    at org.mule.module.scripting.component.Scriptable.runScript(Scriptable.java:372) ~[mule-module-scripting-3.8.5.jar:3.8.5]
    at org.mule.module.scripting.component.ScriptComponent.doInvoke(ScriptComponent.java:78) ~[mule-module-scripting-3.8.5.jar:3.8.5]
    at org.mule.component.AbstractComponent.invokeInternal(AbstractComponent.java:120) ~[mule-core-3.8.5.jar:3.8.5]
    ... 69 more
Caused by: org.mule.api.MessagingException: Execution of the expression "
flowVars['flowType'] = "CacheServicePageData";
flowVars['recordKey']=com.xyz.connect.util.ConnectRedisUtil.buildAndReturnREDISCacheKey(sessionVars.cdmID, payload.pageNumber);
flowVars['pageNumber']=payload.pageNumber;
flowVars['pageSize']=payload.pageSize;" failed. (org.mule.api.expression.ExpressionRuntimeException).
    at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:42) ~[mule-core-3.8.5.jar:3.8.5]
    at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:108) ~[mule-core-3.8.5.jar:3.8.5]
    at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44) ~[mule-core-3.8.5.jar:3.8.5]
    at org.mule.construct.Flow$2.process(Flow.java:138) ~[mule-core-3.8.5.jar:3.8.5]
    at org.mule.construct.Flow$2.process(Flow.java:133) ~[mule-core-3.8.5.jar:3.8.5]
    at org.mule.execution.ExecuteCallbackInterceptor.execute(ExecuteCallbackInterceptor.java:16) ~[mule-core-3.8.5.jar:3.8.5]
    at org.mule.execution.CommitTransactionInterceptor.execute(CommitTransactionInterceptor.java:35) ~[mule-core-3.8.5.jar:3.8.5]
    at org.mule.execution.CommitTransactionInterceptor.execute(CommitTransactionInterceptor.java:22) ~[mule-core-3.8.5.jar:3.8.5]
    at org.mule.execution.HandleExceptionInterceptor.execute(HandleExceptionInterceptor.java:30) ~[mule-core-3.8.5.jar:3.8.5]
    ... 32 more
Caused by: org.mule.api.expression.ExpressionRuntimeException: Execution of the expression "
flowVars['flowType'] = "CacheServicePageData";
flowVars['recordKey']=com.xyz.connect.util.ConnectRedisUtil.buildAndReturnREDISCacheKey(sessionVars.cdmID, payload.pageNumber);
flowVars['pageNumber']=payload.pageNumber;
flowVars['pageSize']=payload.pageSize;" failed.
    at org.mule.el.mvel.MVELExpressionLanguage.evaluateInternal(MVELExpressionLanguage.java:232) ~[mule-core-3.8.5.jar:3.8.5]
    at org.mule.el.mvel.MVELExpressionLanguage.evaluate(MVELExpressionLanguage.java:163) ~[mule-core-3.8.5.jar:3.8.5]
    at org.mule.el.mvel.MVELExpressionLanguage.evaluate(MVELExpressionLanguage.java:142) ~[mule-core-3.8.5.jar:3.8.5]
    at org.mule.el.ExpressionLanguageComponent.process(ExpressionLanguageComponent.java:52) ~[mule-core-3.8.5.jar:3.8.5]
    at org.mule.execution.MessageProcessorNotificationExecutionInterceptor.execute(MessageProcessorNotificationExecutionInterceptor.java:108) ~[mule-core-3.8.5.jar:3.8.5]
    at org.mule.execution.MessageProcessorExecutionTemplate.execute(MessageProcessorExecutionTemplate.java:44) ~[mule-core-3.8.5.jar:3.8.5]
    ... 8 more
Caused by: java.lang.RuntimeException: no context
    at org.mule.mvel2.ParserContext.getVariableScope(ParserContext.java:706) ~[mule-mvel2-2.1.9-MULE-012.jar:?]
    at org.mule.mvel2.ParserContext.initializeTables(ParserContext.java:445) ~[mule-mvel2-2.1.9-MULE-012.jar:?]
    at org.mule.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:124) ~[mule-mvel2-2.1.9-MULE-012.jar:?]
    at org.mule.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:63) ~[mule-mvel2-2.1.9-MULE-012.jar:?]
    at org.mule.mvel2.MVEL.analysisCompile(MVEL.java:681) ~[mule-mvel2-2.1.9-MULE-012.jar:?]
    at org.mule.mvel2.MVEL.analysisCompile(MVEL.java:685) ~[mule-mvel2-2.1.9-MULE-012.jar:?]
    at org.mule.mvel2.compiler.PropertyVerifier.getCollectionProperty(PropertyVerifier.java:443) ~[mule-mvel2-2.1.9-MULE-012.jar:?]
    at org.mule.mvel2.compiler.PropertyVerifier.analyze(PropertyVerifier.java:126) ~[mule-mvel2-2.1.9-MULE-012.jar:?]
    at org.mule.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeSetAccessor(ReflectiveAccessorOptimizer.java:278) ~[mule-mvel2-2.1.9-MULE-012.jar:?]
    at org.mule.mvel2.compiler.CompiledAccExpression.setValue(CompiledAccExpression.java:68) ~[mule-mvel2-2.1.9-MULE-012.jar:?]
    at org.mule.mvel2.ast.AssignmentNode.getReducedValueAccelerated(AssignmentNode.java:111) ~[mule-mvel2-2.1.9-MULE-012.jar:?]
    at org.mule.mvel2.MVELRuntime.execute(MVELRuntime.java:86) ~[mule-mvel2-2.1.9-MULE-012.jar:?]
    at org.mule.mvel2.compiler.CompiledExpression.getDirectValue(CompiledExpression.java:123) ~[mule-mvel2-2.1.9-MULE-012.jar:?]
    at org.mule.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:119) ~[mule-mvel2-2.1.9-MULE-012.jar:?]
    at org.mule.mvel2.MVEL.executeExpression(MVEL.java:953) ~[mule-mvel2-2.1.9-MULE-012.jar:?]
    at org.mule.el.mvel.MVELExpressionExecutor.execute(MVELExpressionExecutor.java:87) ~[mule-core-3.8.5.jar:3.8.5]
    at org.mule.el.mvel.MVELExpressionLanguage.evaluateInternal(MVELExpressionLanguage.java:228) ~[mule-core-3.8.5.jar:3.8.5]
    at org.mule.el.mvel.MVELExpressionLanguage.evaluate(MVELExpressionLanguage.java:163) ~[mule-core-3.8.5.jar:3.8.5]
    at org.mule.el.mvel.MVELExpressionLanguage.evaluate(MVELExpressionLanguage.java:142) ~[mule-core-3.8.5.jar:3.8.5]
    at org.mule.el.ExpressionLanguageComponent.process(ExpressionLanguageComponent.java:52) ~[mule-core-3.8.5.jar:3.8.5]
    at org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor.execute(ExceptionToMessagingExceptionExecutionInterceptor.java:27) ~[mule-core-3.8.5.jar:3.8.5]