0

我是 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,因此我的选择表达式不起作用。任何帮助,将不胜感激。

谢谢!!!

4

1 回答 1

4

在处理 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>

高温高压

于 2012-08-15T23:19:09.423 回答