我choice在我的 Mule 3.3 流程中使用下面显示的元素片段。XSL Transformer提供选择元素。XSL Transformer 应该返回一个String(实体名称),并且基于字符串值,我使用选择路由器将其推送到不同的 jms 队列。
<flow name="ProcessOrder">
    .
    .  
    <xm:xslt-transformer xsl-file="xsl/getEntity.xslt" returnClass="java.lang.String"/>
    <choice>
        <when expression="payload.contains('ABC')">             
            <jms:outbound-endpoint queue="order.queue1" />
        </when>
        <when>
        </when>
        <otherwise>         
        </otherwise>
    </choice>
</flow>
XSL 转换器返回此有效负载
    <?xml version="1.0" encoding="UTF-8"?>ABC
我的问题是如何比较String返回的。我认为这不是payload.contains()最好的方法,虽然它解决了我的目的,而且我们不会返回匹配的实体,ABCxy但仍然不是一个完整的证明解决方案。