Верблюд - какой шаблон использовать для дополнения 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.

Другие вопросы по тегам