Расщепление, обогащение и соединение - PullRequest
2 голосов
/ 24 сентября 2011

У меня есть сообщение, содержащее XML (заказ), содержащий несколько однородных узлов (например, список продуктов) в дополнение к другой информации (например, адрес, данные клиента и т. Д.). Я должен дополнить каждый «продукт» деталями, предоставленными другой внешней службой, и вернуть такое же полное XML-сообщение «заказ» с обогащенными «продуктами».

Я придумал эту последовательность шагов:

  1. Разделить исходный XML с помощью xpath для разделения сообщений (также сохраняя исходное сообщение)
  2. Обогащение разделенных сообщений дополнительными данными
  3. Поместите обогащенные части обратно в исходное сообщение, заменив старые элементы.

Я пытался использовать многоадресную рассылку, отправляя исходное сообщение в конечную точку, где выполняется разбиение и обогащение, и в конечную точку агрегации, где исходное сообщение и обогащенные сообщения являются агрегатами, а затем передаются процессору, который отвечает за объединение этих частей обратно в одну XML-файл. Но я не смог получить желаемый эффект ...

Каков будет правильный и хороший способ решить эту проблему?

1 Ответ

5 голосов
/ 25 сентября 2011

EIP Splitter в Camel может объединять сообщения обратно (как EIP обработчика составных сообщений). http://camel.apache.org/splitter

Посмотрите это видео, которое демонстрирует такой пример использования http://davsclaus.blogspot.com/2011/09/video-using-splitter-eip-and-aggregate.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...