我是MULE的新手。我正在尝试创建一个mule流来路由到不同的端点,具体取决于XML有效负载的内容。例如,如果有效负载的根元素是Aa,我想将消息路由到队列A.否则,它应该转到队列B.任何人都可以给我一些关于如何实现这一点的指示吗?
所以,到目前为止,我试过这个:
<choice doc:name="Choice">
<when expression="message.getpayload contains 'Aa'" evaluator="string">
<processor-chain>
<jms:outbound-endpoint queue="A" connector-ref="Active_MQ" doc:name="JMS"/>
</processor-chain>
</when>
<otherwise>
<processor-chain>
<jms:outbound-endpoint queue="B" connector-ref="Active_MQ" doc:name="JMS"/>
</processor-chain>
</otherwise>
</choice>
但是一切都要进入队列A,所以我的选择表达不起作用。任何帮助将不胜感激。
感谢!!!
答案 0 :(得分:3)
使用XML数据时最好使用XPath来评估这种情况。
<choice doc:name="Choice">
<when expression="/Aa" evaluator="xpath">
<processor-chain>
<jms:outbound-endpoint queue="A" connector-ref="Active_MQ" doc:name="JMS"/>
</processor-chain>
</when>
<otherwise>
<processor-chain>
<jms:outbound-endpoint queue="B" connector-ref="Active_MQ" doc:name="JMS"/>
</processor-chain>
</otherwise>
</choice>
HTH