我在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
--------------------------------------------------------------------------------
我通过在德比中的数据库表上选择全部来获取输入。
关心 小号
答案 0 :(得分:2)
从错误消息中,您的有效负载似乎已经是地图而不是数组。
您应该使用表达式
#[message.payload['destination'] == 'SFO']
直接