具有琐碎特征的SOAP WS:
-WSDL地址:
http://<ip>:<port>/service/name?wsdl
-目标方法名称:
getData(...)
调用WS-的Spring集成配置('sspring-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>
...
变压器(成功(后,我有请求对象:
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集成以正确调用WS?
问题是没有调用WS。
这个问题看起来怎么样?如果没有一些堆栈跟踪,我们什么都说不出来。
WS方法的名称使用正确吗?
SoapAction
值是特定于供应商的。您必须查阅提供的WS,以确定应该在该标头中显示什么以及如何显示。
参数是如何传递的?
不确定任何参数。是的,你也可以发送一些查询参数,但看起来这不是你的问题。请说得更具体一些。
顺便说一句,如果你发送一些POJO(例如你的org.types.GetDataRequest
(,你需要使用封送网关,而不是简单的:
<int-ws:outbound-gateway marshaller="someMarshaller" uri="http://<ip>:<port>/service/name"/>
当然,不确定,如果您有一个好的XSD genated模型,基于WSDL中提供的信息。。。