我試圖根據存在於地圖,這是使用騾子變壓器XMLMapper和XML地圖..流程看起來像在選擇點後形成的數據來劃分我的流程是:選擇配置在騾子流在Tomcat中
當我在騾子工作室在Windows機上運行<choice doc:name="Choice">
<when expression="#[message.payload['interfaceId'] == 'BK131108.1655.000698']" >
<processor-chain doc:name="AUB Encryption" />
...
</when>
......
</choice>
相同的流量正常工作。但是,當我部署一個Linux機器我得到的錯誤在Tomcat上的流量(與整個項目)...
DEBUG 2015-08-25 11:46:43,908 [[eig-1.0].BankServiceJMS.stage1.02] com.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)
任何建議....
@大衛:請檢查.. – Atmaram
看起來像你的負載沒有那個'interfaceId'。你可以嘗試在這個選擇之前使用記錄器,並打印#[message.payload ['interfaceId']]是否工作。 – tortoise
看看是否改變表達式爲「#[message.payload.interfaceId =='BK131108.1655.000698']」修復它。 –