2012-08-23 97 views
0

我有一個屬性,我從Message的Payload中提取並設置爲出站屬性(以便於訪問)。我想簡單地檢查這個屬性的大小,但我所有最好的猜測都給我例外。Mule Choice Expression - 基於出站屬性的路由

我已經嘗試使用#[header:OUTBOUND:count]語法,當>標記添加評估者=「標頭」屬性到<,似乎沒有任何工作。我也嘗試了其他評估器,但我找不到任何具有語法示例的Mule文檔,所以我只是猜測應該如何形成表達式。

<choice doc:name="Choice"> 
     <when expression="message.outboundProperties['count']==0"> 
      <processor-chain> 
       ... something here ... 
      </processor-chain> 
     </when> 
     <otherwise> 
      <processor-chain> 
       ... alternate option ... 
      </processor-chain> 
     </otherwise> 
    </choice> 

回答

0

假設你正在運行的騾子3.3.0和count是數字,你的語法是正確的,並應作爲工作的。

爲了使它規範,添加#[]周圍的表達:

<when expression="#[message.outboundProperties['count'] == 0]"> 

因爲它的名字是MVEL屬性命名兼容,你甚至可以直接訪問的count項:

<when expression="#[message.outboundProperties.count == 0]"> 
+0

是的,我錯誤地使用了3.2。這就是我爲安裝3個Studio版本而獲得的... – Bing

0

在這種情況下,我通常使用Groovy。 試試這個

<when expression="message.getProperty('count',org.mule.api.transport.PropertyScope.OUTBOUND)==0" 
evaluator="groovy"/> 

HTH