Идиоматический способ потребления из конечной точки в Apache Camel для ответа на конечную точку

Я хочу иметь возможность сделать следующее:

from(...)
.replyWith()
.from(...)
.end()

Чтобы ответ моему производителю брался из потребления другой конечной точки, примером может быть что-то вроде конечной точки REST для очереди.

Есть ли в Camel идиоматический способ сделать что-то подобное вышеописанному без захвата конечной точки из экземпляра CamelContext и ручного извлечения содержимого и установки его в Exchange?


person Sean Parsons    schedule 19.12.2010    source источник


Ответы (1)


Можете ли вы объяснить немного больше?

Вы не хотите просто делать

От а до б

от В до С

Таким образом, сообщение, отправленное на A, будет отправлено на B. И B обрабатывается на другом маршруте, и ответ от этого будет отправлен обратно на первый маршрут, который будет использоваться в качестве ответа любому клиенту, вызывающему A в первую очередь. .

Кроме того, если вам нужно что-то с динамическими конечными точками, вы можете использовать шаблон EIP списка получателей http://camel.apache.org/recipient-list.html

person Claus Ibsen    schedule 19.12.2010
comment
В приведенном выше примере тело запроса не имеет значения, поскольку интерес представляет ответ. Там, где я упомянул интерфейс REST в примере с очередью, это будет конечная веб-точка, которая при обращении к браузеру будет потреблять результат из конечной точки очереди, а затем возвращать его в браузер. - person Sean Parsons; 19.12.2010
comment
Ах, вы можете взглянуть на шаблон EIP Content Enricher. У Camel есть pollEnrich, который вы можете использовать для получения из очереди и объединения данных. - person Claus Ibsen; 20.12.2010