【问题标题】:Spring-integration: how correctly to call SOAP web-service?Spring-integration:如何正确调用 SOAP Web 服务?
【发布时间】:2019-01-02 01:10:13
【问题描述】:

具有琐碎特征的 SOAP WS:
- WSDL 地址:

http://<ip>:<port>/service/name?wsdl

- 目标方法名:

getData(...)

用于调用 WS 的 Spring-integration 配置('spring-context.xml')的一部分:

...
<int:chain input-channel="data" output-channel="stdout">  
    <!-- transform message to request -->
    <int:transformer
        ref="soapRequestTransformer" 
        method="createReq">
    </int:transformer>
    <!-- define the WS method to be called (getData) -->
    <int:header-enricher>
        <int:header 
            name="SoapAction" 
            value="http://<ip>:<port>/service/name/getData"/>
    </int:header-enricher>
    <!-- call WS -->
    <int-ws:outbound-gateway uri="http://<ip>:<port>/service/name"/>  
</int:chain>
...

在transformer(成功)之后我有请求对象:

request.getHeaders(): {sequenceNumber=1, correlationId=2bfb560c- 
96ba-9c35-96dc-ba16104604b9, id=32f43a24-dee2-461c-a9b9-92c8ee37aaec, 
sequenceSize=12, timestamp=1532509142590}
request.getPayload(): org.types.GetDataRequest@77409e4b

如何正确设置 spring-integration 以正确调用 WS?

【问题讨论】:

  • 不确定问题是什么。你有什么问题?到目前为止,配置看起来不错。
  • 问题是没有调用WS。 WS 方法的名称使用是否正确?参数是如何传递的?

标签: java spring web-services soap spring-integration


【解决方案1】:

问题是没有调用WS。

这个问题看起来如何?如果没有至少一些堆栈跟踪,我们什么都说不出来。

WS 方法的名称使用是否正确?

SoapAction 值是特定于供应商的。您必须查阅提供的 WS 以确定该标题中应显示的内容和方式。

参数是如何传递的?

不确定是否有参数。是的,您也可以发送一些query params,但看起来这不是您的问题。请说得更具体一些。

顺便说一句,如果你发送一些 POJO(例如你的org.types.GetDataRequest),你需要使用marshaling 网关而不是简单的网关:

 <int-ws:outbound-gateway marshaller="someMarshaller" uri="http://<ip>:<port>/service/name"/>  

当然,根据该 WSDL 中提供的信息,不确定您是否有一个好的 XSD 生成模型...

【讨论】:

  • 1.在当前频道中的“出站网关”工作悄悄停止。链中它之后的端点不起作用。
  • 2.来自 WSDL 的方法名称:
  • 我们不知道必须提供什么正确的 SOAPAction。这是您与提供商的交易。
  • 让我们简化问题。我知道我必须调用的 WS 方法名称。我必须在哪里定义它?
  • marshaller 和 unmarshaller 应该是什么样的?这些类(或单个)是否实现了某些接口? PS:抱歉很多问题,我只是集成流程的初学者。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-24
  • 1970-01-01
  • 1970-01-01
  • 2016-05-27
  • 1970-01-01
相关资源
最近更新 更多