2011-09-22 100 views
1

的身體價值假設你有這樣的路線:駱駝成語路由動態基於消息

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的慣用方法?

回答

0

看到這個常見問題,瞭解動態 http://camel.apache.org/how-do-i-use-dynamic-uri-in-to.html

+0

我_knew_會存在! – dm3

+0

我試着用seda端點,它始終從('seda:input')。到('seda:$ {in.header.output}') 失敗 我得到的只是一個例外:「No端點可以找到:$ {in.header.output}「。關於如何使其運作的任何線索? –

+0

順便說一句 - 用「直接」端點測試它,它也不起作用。我使用的是Camel 2.8.3以及2.9.0-RC1 –

2

您可以使用recipient list模式基於Exchange數據創建動態端點。

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