Верблюд идиома для динамической маршрутизации на основе значения в теле сообщения - PullRequest
1 голос
/ 22 сентября 2011

Предположим, у вас есть маршрут вроде:

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 ]

2 голосов
/ 23 сентября 2011

вы можете использовать шаблон списка получателей для создания динамических конечных точек на основе данных Exchange.

from("direct:start")
.recipientList(constant("http://some.endpoint/accounts/")
              .append(XPathBuilder.xpath("/payload/account/@id", String.class)));
0 голосов
/ 23 сентября 2011

См. Этот FAQ о динамических до http://camel.apache.org/how-do-i-use-dynamic-uri-in-to.html

...