我有一个简单的流程,它从一个 activemq1 读取并从消息中解析一个 id,然后将该 id 发送到另一个 activemq2。
这是写入 activemq1 的消息示例:
<Customer>
<Order>
<id>123</id>
</Order>
<Customer>
我需要从上面的消息正文中解析出 id 并将下面的消息发送到 activemq2:
"Order with id{123} has been queued"
这是我想出的流程,但它将完整的请求 xml 写入队列,而不是我正在寻找的消息:
<from uri="jms:queue:Q.activemq1"/>
<setBody>
<xpath>"/Customer/Order/id/@value/text()"</xpath>
</setBody>
<to uri="jms:queue:Q.activemq2"/>
以上不对的地方或更正
最佳答案
使用
<route>
<from uri="jms:queue:Q.activemq1" />
<setBody>
<xpath resultType="java.lang.String">/Customer/Order/id/text()</xpath>
</setBody>
<setBody>
<simple>Order with ${body} has been queued</simple>
</setBody>
<log message="${body}"/>
</route>
这打印
Order with 123 has been queued
关于java - Camel ..使用xpath解析消息正文中的xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22870755/