我还是Spring Integration的新手,我几乎没有问题。
我在tomcat服务器上部署了WSDL服务。
我想从我的spring集成流程中将参数发送到该服务并接收 回应回流做下一件事。
我应该使用出站WS网关来做到这一点吗? 以及如何配置xml来执行此操作?
我试过温度示例,但仍然不理解。
谢谢。/////////////////////////////////////////////// ////////////////
这是我的配置:
<int:gateway service-interface="com.app.service.IRequester" id="IRequester"
default-request-channel="requestChannel"
default-reply-channel="responseChannel"
error-channel="errorChannel" >
</int:gateway>
<int:service-activator input-channel="requestChannel" id="bu1"
ref="BU1" method="bu1Method"
output-channel="buChannel">
</int:service-activator>
<int:service-activator input-channel="errorChannel"
ref="handlerError" method="errorReturnToGateway"
output-channel="responseChannel" >
</int:service-activator>
<int:router id="routingChannel" input-channel="buChannel" ref="RoutingChannel" method="routingChannel">
<int:mapping value="firstChannel" channel="channelFirst" />
<int:mapping value="otherChannel" channel="channelOther" />
</int:router>
<int:service-activator id="firstBU" input-channel="channelFirst"
ref="FirstBU" method="doSomething" output-channel="responseChannel">
</int:service-activator>
<int:service-activator id="otherBU" input-channel="channelOther"
ref="OtherBU" method="doSomething" output-channel="responseChannel">
</int:service-activator>
我需要从firstBU和otherBU激活器更改输出通道以调用Web服务,该服务向该服务发送一个paremeter(paremeter类型为Hashmap)并接收相同类型的响应。
我不知道如何通过使用ws:outbound-gateway来调用Web服务。因为我只知道通过生成客户端java类使用java方式调用Web服务,并且我可能会在方法doSomething中调用service。
就我而言,你认为哪种方式更好? 我仍然想知道如何通过使用ws:outbound-gateway来解决这个问题。
谢谢你。答案 0 :(得分:1)
就SOAP而言,您可以处理XML。并且您的WSDL为您提供合同 - 一个XSD,XML应该发送到服务,并作为响应返回。
因此,您的任务是配置<int-ws:outbound-gateway>
并将正确的XML作为消息payload
提供给该组件的request-channel
。
回复也是如此:您获得的XML为payload
。
但是,它适用于简单 WS出站网关。您可以使用marshaller
对其进行配置,并向request-channel
某个域POJO发送,marshaller
负责将该POJO转换为SOAP请求的XML表示。
请显示您的配置,也许我们可以帮助您解决更多问题。