2014-08-29 56 views
-2

我被Apache Camel卡住了。我需要通過JBOSS FUSE公開一個Web服務,但是我必須返回的有效負載取決於對兩個外部Web服務的調用。正確調用Apache Camel中的多個外部Web服務

所以,第一個外部Web服務有這個網址:

http://someip/externalWSOne 

這收到一個PARAM命名爲A,並返回三個值X,Y和Z

第二個,接收三個PARAMS命名爲B,X和Y.請注意,X和Y是來自第一個外部Web服務的返回值。

http://someip/externalWSTwo 

這第二個外部Web服務回報N1 ... NN值,其最終的有效載荷

最終用戶只消耗一個Web服務,這是我們內部的服務,我將通過JBOSS FUSE暴露。由於這個原因,我需要公開一個接收兩個參數的Web服務

在Apache camel中對這個流建模的正確方法是什麼?我編寫了以下配置,但最終的有效內容爲空:

<cxf:cxfEndpoint id="epInterno" address="/ep-interno/" serviceClass="somePackage.MyWebServiceInterface"> 
<cxf:cxfEndpoint id="epExterno1" address="http://someip/externalWSOne" serviceClass="somePackage.ExternalWSOneServiceInterface"> 
<cxf:cxfEndpoint id="epExterno2" address="http://someip/externalWSTwo" serviceClass="somePackage.ExternalWSTwoServiceInterface"> 

<camelContext id="blueprintContext" trace="false" xmlns="http://camel.apache.org/schema/blueprint"> 
    <route id="ruta1"> 
     <from uri="cxf:bean:epInterno"/> 
     <process ref="proccesorOne" /> 
     <to uri="cxf:bean:epExterno1" /> 
     <process ref="processorTwo" /> 
     <to uri="cxf:bean:epExterno2" /> 
    </route> 
</camelContext> 

所有外部Web服務的工件都是使用Maven插件生成的。

+0

XML的最後一部分是無效的,因爲你有 2014-08-29 06:23:58

+0

好,我修復它感謝 – pazfernando 2014-08-29 18:53:17

+0

難道您嘗試調試路線,例如在每個步驟記錄正文內容? – 2014-08-30 14:48:32

回答

0

好吧,我試圖探測我的解決方案,所以我決定寫上述三個項目。

結果:是的,這是正確的方式*

看來,對於我來說,當我使用了真正的WS,我有問題與Apache駱駝流程嚴格相關不,不是這個與相關這個外部WS

所以,如果我有人需要自己測試,可以嘗試它分析以下代碼爲github中的項目。

感謝