我正在尝试将我的头脑围绕在Spring集成上,最好远离基于XML的配置。
我想做的事情如下:
1.在特定端点上接受SOAP请求
1.将此请求转发到下游SOAP服务,不做任何修改(目前我只想让基础工作正常进行)
1.将结果返回给客户端
这看起来应该很简单,但是我不知道从哪里开始。SI可能做到这一点吗?根据我的理解,如果我错了,请纠正我,SI主要用于异步数据流。
我确实检查了集成示例存储库,其中包括示例入站WS请求,但这些都是用XML配置的,正如我所说的,我最好远离XML。
任何指示将不胜感激;过去两天我一直在阅读文档,但我还是不明白!
3条答案
按热度按时间ep6jt1vc1#
这里是一个使用SimpleWebServiceInboundGateway的例子。在这个例子中,我们也将“ExtractPayload”设置为false,这样它就可以发送RAW soap消息。但是同意上面的说法,可能HTTPInboundRequest更适合你的用例。我也没有找到很多使用DSL的SoapInboundGateway的例子,所以想分享一下,希望它能帮助其他人。
inkz8wg92#
如果您的应用程序只是其他SOAP服务上的代理,则应考虑仅使用普通的HTTP入站网关和HTTP出站网关。
您从客户端接收XML并将其发送到下游服务,然后再次从那里接收XML并将其推回到客户端的响应中。
为此,我建议使用Java DSL的HTTP代理解决方案:
SimpleWebServiceInboundGateway
和SimpleWebServiceOutboundGateway
对的问题是,它们提取请求并解析响应,以将其 Package 到SOAP信封或从SOAP信封中展开。这看起来像是普通代理用例的开销。rnmwe5a23#
多亏了阿尔特姆的回答,我做了一个小小的调整,才让它工作起来。不知道为什么需要通道,但至少它现在能工作了。