当前位置: 首页 > 知识库问答 >
问题:

具有动态地址的Camel SOAP CXF调用

吕永寿
2023-03-14

我正在尝试编写一个SOAP Web服务:

  1. 接受一种请求类型 A
  2. 将请求 A 映射到另一个出站请求类型 B
  3. 将请求 B 发送到外部 SOAP 服务
  4. 将响应 B 映射回响应 A 对象(并返回它)

当endpoint(B)静态配置时,我有这个工作。

但我希望能够使用不同的请求/响应类型来访问各种服务。这些可能通过属性文件进行配置。

有没有可能以某种通用/动态的方式做到这一点?

这是我的Spring骆驼XML:

<!— SOAP inbound service —>
<cxf:cxfEndpoint
        id="paymentService_A"
        serviceClass="#paymentServiceBean"
        address="/PaymentService"/>

<!— SOAP outbound service —>
<cxf:cxfEndpoint
        id=“paymentService_B"
        wsdlURL="http://localhost:9080/externalpayment/ExternalPaymentService?wsdl"
        serviceClass="com.yngwietiger.ExternalPayment"
        address="http://localhost:9080/externalpayment/ExternalPaymentService"/>

<!— MAP from inbound SOAP request object to external SOAP request object —>
<bean id="mapAToB_RequestProcessor" class="com.yngwietiger.MyProcessor"/>

<!— MAP external SOAP response to a response for the initial/inbound SOAP request —>
<bean id="html" target="_blank">mapBToA_ResponseProcessor" class="com.yngwietiger.MyPostProcessor"/>

<camel:camelContext id="camelContext">

    <camel:route>

        <camel:from uri="cxf:bean:paymentService_A"/>
        <camel:process ref="mapAToB_RequestProcessor"/>
        <camel:to uri="cxf:bean:paymentService_B"/>
        <camel:process ref="mapBToA_ResponseProcessor"/>

    </camel:route>

</camel:camelContext>

显然,我使用的是 Camel 的 cxfEndpoint bean。但是我没有看到任何方法可以为每个请求设置地址,wsdlURL等。这可能吗?

还是我必须为每种类型建立一条路线?如果是,我如何动态构建这些cxfEndpoint之一?

使用Spring的WS模板会更灵活吗?

有没有更好的方法让我这样做?

提前感谢。

共有2个答案

宇文鸿振
2023-03-14

我认为您可以将HTTPendpoint用于出站消息。正如这里的示例中所做的那样

梁韬
2023-03-14

Camel收件人列表将更符合您的要求。这是链接,http://camel.apache.org/recipient-list.html.你必须生成动态endpoint,并设置到路由中某处的头中,并调用接收方列表。

 类似资料:
  • 本文向大家介绍静态IP地址和动态IP地址之间的区别,包括了静态IP地址和动态IP地址之间的区别的使用技巧和注意事项,需要的朋友参考一下 静态IP地址和动态IP地址都用于标识网络或Internet上的计算机。静态IP地址由Internet服务提供商提供,并且在系统连接到网络之前一直保持固定。动态IP地址由DHCP提供,通常公司会获得一个静态IP地址,然后为其在组织网络内的计算机生成动态IP地址。 以

  • 问题内容: 我已经成功地使SES网址能够正常工作,例如使用,但是这仅适用于根目录,并且如果文件夹已知。例如,如果我有一个子文件夹,其中的子应用程序使用相同的技巧,我也可以通过使用来使它起作用,但是,如果在文件夹之间和文件夹中带有动态名称,则我必须为每个名称制作一个网址格式将无法正常工作。 除了重新构建应用程序以使其不使用动态文件夹结构或每次添加/删除/更改文件夹时都必须动态填充此web.xml之外

  • 问题内容: 我已经下载了ip-to-country.csv,它具有映射到国家的ip范围。如何将这些数据存储到数据库中,如何查询IP地址的范围以了解IP地址从何而来? 问题答案: 我编写了一个名为ip2c的小程序库来完成此操作。它使用webhosting.info中的数据库,但也支持Software77中的数据库。 它将CSV信息转换为紧凑的二进制格式,并且可以直接在文件,内存或内存映射文件中进行搜

  • 我想知道是否有什么方法可以使属性值动态。类似于这样: 感谢您的反馈。在我的例子中,属性值是系统特定的,应该在测试运行时生成。

  • 7. 回调地址管理 用于管理回调的地址,在该页面可设置相关信息: