верблюжий маршрут, компонент http4, динамические параметры URL - PullRequest
1 голос
/ 29 июня 2011

Я новичок в Apache-Camel, и я просто пытаюсь понять, что он может и не может сделать. Я хотел бы использовать компонент http4 для динамического предоставления параметров URL. Например, если у меня есть что-то вроде этого:

from("direct:start").to("http4://hostname.com/the/path")
.unmarshal().json(JsonLibrary.Jackson,MyBeanClass.class)
.to("mock:result");

И тогда у меня есть шаблон производителя, подобный этому:

ProducerTemplate template = camelContext.createProducerTemplate();
Map<String,String> m = new HashMap<String,String>();
m.put("key1","val1");
m.put("key2", "val2");
template.sendBody("direct:start", m);

Я надеюсь, что есть какой-то способ волшебным образом преобразовать карту в параметры URL-адреса, чтобы фактический URL-адрес, который отправляется, был http://hostname.com/the/path?key1=val1&key2=val2". 1008

Возможна ли такая вещь? В документации ничего подобного не упоминается, но я не очень понимаю, как компонент, который может вызывать только статические URL, очень полезен. Спасибо за понимание.

1 Ответ

4 голосов
/ 29 июня 2011

Нашел ответ:

Маршрут может сделать это:

from("direct:start")
.setHeader(Exchange.HTTP_QUERY, simple("key1=${in.headers.key1}&key2=${in.headers.key2}"))
.to("http4://host.com/the/path")

И тогда шаблон производителя может сделать это:

Map<String,Object> m = new HashMap<String,Object>();
m.put("key1", "1");
m.put("key2", "2");
template.sendBodyAndHeaders("direct:start", null, m);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...