0

私は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>

HTH

于 2012-08-15T23:19:09.423 に答える