Mule ESB:使用表达式</choice-when>评估mule中的<choice-when>

时间:2013-11-23 18:08:49

标签: mule esb

我在mule中有以下表达式是有效的:

 <choice doc:name="Choice">
    <when expression="#[message.payload[0]['destination'] == 'SFO']"> 
       <processor-chain doc:name="Processor Chain"> 
            <request-reply timeout="5000"> 
               <jms:outbound-endpoint connector-ref="jmsConnector" queue="Queue1"></jms:outbound-endpoint> 
               <jms:inbound-endpoint connector-ref="jmsConnector" queue="Queue2"></jms:inbound-endpoint>  
             </request-reply>  
       </processor-chain>

当我运行此代码时,我收到以下错误:

ERROR 2013-11-23 10:11:04,010 [[ConfluexDemo].ExpreFlow2.stage1.03] org.mule.exception.DefaultMessagingExceptionStrategy: 
********************************************************************************
Message               : Execution of the expression "message.payload[0]['destination'] == 'SFO'" failed. (org.mule.api.expression.ExpressionRuntimeException). Message payload is of type: CaseInsensitiveHashMap
Code                  : MULE_ERROR--2
--------------------------------------------------------------------------------

我通过在德比中的数据库表上选择全部来获取输入。

关心 小号

1 个答案:

答案 0 :(得分:2)

从错误消息中,您的有效负载似乎已经是地图而不是数组。

您应该使用表达式

#[message.payload['destination'] == 'SFO']

直接