2012-08-23 76 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