2014-10-28 2 views
0

У меня есть xml, похожий на следующий, который содержит некоторый элемент, составленный с помощью URL-адреса. Этот url - это еще один веб-сервис, который содержит другой xml. Что мне нужно сделать, это заполнить мой xml информацией из webservice, и я хотел бы добиться этого с помощью верблюда. Здесь идет пример:Camel - какой шаблон использовать для завершения xml со значениями из других сервисов

Initial 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.