基于标记值路由消息 - Apache Camel

时间:2013-12-20 14:32:37

标签: spring jms apache-camel

我正在尝试学习Apache Camel Routes。对于一个基本示例,我想知道如何基于XML标记中的值进行路由。例如,如果我们有3个带有父标记的xml文件:

<item type="n1" />
<item type="n2" />
<item type="n3" />

我想将这3个路由到3个不同的管道......

所以这是我的想法(在春天):

<route id="NormalizeMessageData">

<from uri="jms:incomingOrders" />
<convertBodyTo type="java.lang.String" />

<choice>
<when>
  <simple>${body} contains '?xml'</simple> <!-- to make sure its xml file only -->
  *
  *
  *
  <unmarshal>
    <jaxb contextPath="org.fusesource.camel" />
  </unmarshal>
  <to uri="jms:orders" />
</when>
</choice>

看星星(*),这是我们需要进行一些检查的地方。但是如何?

1 个答案:

答案 0 :(得分:2)

请参阅上面链接的Camel xpath文档以获取所有详细信息,但您应该只需要:

<choice>
    <when>
        <xpath>/item/@type = 'n1'</xpath>
        ...
    </when>
</choice>