【问题标题】:Route message based on Tag Value - Apache Camel基于标签值的路由消息 - Apache Camel
【发布时间】:2013-12-20 14:32:36
【问题描述】:

我正在尝试学习 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>

看到星星(*),这是我们需要检查的地方。但是怎么做呢?

【问题讨论】:

标签: spring jms apache-camel


【解决方案1】:

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

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

【讨论】:

  • 嗯。 &lt;xpath&gt;//item[@type='n1']&lt;/xpath&gt; 怎么样?这也有用吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-29
  • 1970-01-01
相关资源
最近更新 更多