我被Apache Camel困住了。我需要通过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值
最终用户只使用一个Web服务,即我将通过JBOSS FUSE公开的内部服务。出于这个原因,我需要公开一个接收两个参数的Web服务
在Apache驼峰中建模此流程的正确方法是什么?我编写了以下配置,但最终的有效负载是空的:
<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 :(得分:0)
好的,我尝试探测我的解决方案,所以我决定编写上面提到的三个项目。
结果:是这是正确的方式*
对于我的情况似乎,当我使用真正的WS时,我遇到了与apache camel流没有严格关系的问题,而不是与这个外部WS的实现有关
所以,如果我有人需要自己测试,可以尝试分析github中项目的以下代码。
由于