Верблюд - какой шаблон использовать для дополнения xml значениями из других сервисов
У меня есть XML, похожий на следующий, который имеет некоторый элемент, состоящий из URL. Этот URL является еще одним веб-сервисом, который содержит еще один XML. Что мне нужно сделать, так это заполнить мой xml информацией из веб-сервиса, и я хотел бы добиться этого с помощью верблюда. Вот пример:
Начальная XML
<root>
<level11>Level1.txt</level1>
<level12>
<level21>http://someservice/11</level21>
<level21>http://someservice/12</level21>
</level12>
<level13>
<level22>http://someservice/21</level22>
<level22>http://someservice/22</level22>
</level13>
</root>
http://someservice
возвращает XML, который я должен заменить на оригинальный XML. Например
http://someservice/11
возвращается
<someservice>
<test>11</test>
</someservice>
http://someservice/12
возвращается
<someservice>
<test>12</test>
</someservice>
http://someservice/21
возвращается
<someservice>
<test>21</test>
</someservice>
http://someservice/22
возвращается
<someservice>
<test>22</test>
</someservice>
мой окончательный XML будет:
<root>
<level11>Level1.txt</level1>
<level12>
<level21>
<someservice>
<test>11</test>
</someservice>
</level21>
<level21>
<someservice>
<test>12</test>
</someservice>
</level21>
</level12>
<level13>
<level22>
<someservice>
<test>21</test>
</someservice>
</level22>
<level22>
<someservice>
<test>22</test>
</someservice>
</level22>
</level13>
</root>
Поэтому мой вопрос: какой шаблон лучше всего использовать для достижения этого результата?
1 ответ
Это, кажется, соответствует содержанию EIP. Этот EIP позволит вам добавлять и расширять исходное сообщение на основе результатов других служб. Узнайте больше об этом на сайте Apache Camel, прочитав документацию Content Enrichment EIP.