Mule Choice Expression - 基于Outbound属性的路由

时间:2012-08-23 15:24:31

标签: syntax expression eval esb mule

我有一个属性,我从Message的Payload中提取并设置为Outbound属性(以便更容易访问)。我想简单地检查一下这个属性的大小,但我最好的猜测是给了我例外。

我尝试使用#[header:OUTBOUND:count]语法,在< when>中添加了evaluateator =“header”属性。标签,似乎没有任何工作。我也尝试了其他评估器,但是我找不到任何带有语法示例的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>

2 个答案:

答案 0 :(得分:0)

在这种情况下,我通常使用Groovy。 试试这个

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

HTH

答案 1 :(得分:0)

假设您正在运行Mule 3.3.0并且count是数字,那么您的语法是正确的并且应该按原样运行。

要使其成为规范,请在表达式周围添加#[]

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

由于其名称与MVEL属性命名兼容,您甚至可以直接访问count条目:

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