Camel习语根据消息正文中的值动态路由

时间:2011-09-22 18:51:08

标签: java routing apache-camel idioms

假设你有一条路线:

from("direct:start").to("http://some.endpoint/accounts/");

通过direct:start传递的消息是XML:

<payload>
    <account id="1">Bob</account>
</payload>

提取帐户id并将其附加到to端点以便将此邮件发送到http://some.endpoint/accounts/1的惯用方法是什么?

2 个答案:

答案 0 :(得分:2)

您可以使用recipient list模式根据Exchange数据创建动态端点。

from("direct:start")
.recipientList(constant("http://some.endpoint/accounts/")
              .append(XPathBuilder.xpath("/payload/account/@id", String.class)));

答案 1 :(得分:0)

请参阅此常见问题解答,了解动态 http://camel.apache.org/how-do-i-use-dynamic-uri-in-to.html