2012-08-15 54 views
0

我是MULE的新手。我試圖根據XML有效負載的內容創建一個mule流路由到不同的端點。例如,如果有效載荷的根元素是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> 

但一切都會隊列,因此我選擇的表達不工作。任何幫助,將不勝感激。

謝謝!!!

回答

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

+0

謝謝你牛!工作! – ridermule 2012-08-16 13:39:46

+0

太棒了!因爲它對你有效,請將答案標記爲已接受。 – Daniel 2012-08-16 14:11:04

+0

好吧,它看起來像他忘了..也許一個國防部可以標記anwser被接受? – jonfornari 2013-08-21 11:47:45