Web services 以正确的方式调用多外部Web服务
我被阿帕奇骆驼困住了。我需要通过JBOSS FUSE公开一个web服务,但是我必须返回的负载取决于对两个外部web服务的调用 因此,第一个外部web服务具有以下URL:Web services 以正确的方式调用多外部Web服务,web-services,apache-camel,fuseesb,jbossfuse,Web Services,Apache Camel,Fuseesb,Jbossfuse,我被阿帕奇骆驼困住了。我需要通过JBOSS FUSE公开一个web服务,但是我必须返回的负载取决于对两个外部web服务的调用 因此,第一个外部web服务具有以下URL: http://someip/externalWSOne 这将接收一个名为A的参数,并返回三个值X、Y和Z 第二个,接收三个名为B、X和Y的参数。请注意,X和Y是第一个外部web服务返回的值 http://someip/externalWSTwo 第二个外部web服务返回N1…Nn值,这些值是最终有效负载 最终用户只使用一个w
http://someip/externalWSOne
这将接收一个名为A的参数,并返回三个值X、Y和Z
第二个,接收三个名为B、X和Y的参数。请注意,X和Y是第一个外部web服务返回的值
http://someip/externalWSTwo
第二个外部web服务返回N1…Nn值,这些值是最终有效负载
最终用户只使用一个web服务,即我将通过jbossfuse公开的内部we服务。因此,我需要公开一个接收两个参数的web服务
在ApacheCamel中对该流建模的正确方法是什么?我写入以下配置,但最终有效负载为空:
<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插件生成的。好的,我尝试探索我的解决方案,所以我决定编写上面提到的三个项目 结果:是,这是正确的方法* 似乎在我的案例中,当我使用真正的WS时,我遇到了与ApacheCamel流无关的问题,而不是与这个外部WS的实现有关的问题 因此,如果有人需要自行测试,可以尝试在github中分析以下项目代码
谢谢最后一段XML无效,因为您有您是否尝试调试路由,例如在每个步骤记录正文内容?是的,我使用cxf entrypoint中的拦截器进行了调试,我看到了epExterno2根据此示例返回的SOAP消息,但由于任何原因,这不能通过camel作为最后一条SOAP消息提取出来。我看到一个与“意外元素”相关的错误。到目前为止,我发布这个问题的目的是了解编排多个web服务的正确方法是上面提出的解决方案。