问题描述
限时送ChatGPT账号..我正在尝试根据 Map 中存在的数据划分我的流,该数据是在使用 Mule Transformer XMLMapper 和 XML to Map 之后形成的.流在选择点看起来是:
I am trying to divide my flow according to the data present in the Map, which is formed after using Mule Transformer XMLMapper And XML to Map.. Flow looks like at choice point is:
<choice doc:name="Choice">
<when expression="#[message.payload['interfaceId'] == 'BK131108.1655.000698']" >
<processor-chain doc:name="AUB Encryption" />
...
</when>
......
</choice>
当我在 Windows 机器上的 Mule Studio 上运行它时,相同的流程工作正常..但是当我在 linux 机器上的 tomcat 上部署流程(包含整个项目)时,我收到错误...
Same flow works fine when I run it on Mule Studio on Windows Machine.. But when I deploy the flow (with whole project) on tomcat on a linux machine i am getting error...
DEBUG 2015-08-25 11:46:43,908 [[eig-1.0].BankServiceJMS.stage1.02] comviva.mfs.eig.transformers.XmlToMap: The transformed object is of expected type. Type is: HashMap
ERROR 2015-08-25 11:46:43,914 [[eig-1.0].BankServiceJMS.stage1.02] org.mule.exception.DefaultMessagingExceptionStrategy: Caught exception in Exception Strategy: null
java.lang.NullPointerException
at org.mule.routing.filters.ExpressionFilter.getFullExpression(ExpressionFilter.java:140)
at org.mule.routing.filters.ExpressionFilter.accept(ExpressionFilter.java:104)
at org.mule.routing.ChoiceRouter.selectProcessors(ChoiceRouter.java:35)
at org.mule.routing.AbstractSelectiveRouter.process(AbstractSelectiveRouter.java:194)
at org.mule.processor.chain.DefaultMessageProcessorChain.doProcess(DefaultMessageProcessorChain.java:99)
at org.mule.processor.chain.AbstractMessageProcessorChain.process(AbstractMessageProcessorChain.java:66)
at org.mule.processor.AbstractInterceptingMessageProcessorBase.processNext(AbstractInterceptingMessageProcessorBase.java:105)
at org.mule.interceptor.AbstractEnvelopeInterceptor.process(AbstractEnvelopeInterceptor.java:55)
at org.mule.processor.AsyncInterceptingMessageProcessor.processNextTimed(AsyncInterceptingMessageProcessor.java:111)
at org.mule.processor.AsyncInterceptingMessageProcessor$AsyncMessageProcessorWorker.doRun(AsyncInterceptingMessageProcessor.java:158)
at org.mule.work.AbstractMuleEventWork.run(AbstractMuleEventWork.java:43)
at org.mule.work.WorkerContext.run(WorkerContext.java:310)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)
任何建议....
推荐答案
Mule 3.4.1 的源代码.在抛出异常的第 140 行是:{
(参见:https://github/mulesoft/mule/blob/mule-3.4.1/core/src/main/java/org/mule/routing/filters/ExpressionFilter.java#L140 )
The source code for Mule 3.4.1. at line 140, where the exception is thrown, is: {
(see: https://github/mulesoft/mule/blob/mule-3.4.1/core/src/main/java/org/mule/routing/filters/ExpressionFilter.java#L140 )
因此,我怀疑您没有正确打包 WAR 文件,即使用预期的 Mule 版本.请手动检查WEB-INF/lib
以查看mule-*.jar
已打包的内容,并确保所有版本一致.
Thus, I suspect you're not packaging the WAR file properly, i.e. with the expected version of Mule. Please manually inspect WEB-INF/lib
to see what mule-*.jar
have been packaged and make sure all versions are consistent.
这篇关于tomcat中Mule Flow中的Choice配置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
更多推荐
[db:关键词]
发布评论