Java实现转发基于soap协议的webservice接口调用
现在有这么一个需求,我们的系统(M)作为各个系统信息交换中间平台。系统A和系统B需要交互,但是他们的网络是隔离的。系统B通过webservice发布了一些接口服务,然后提供WSDL给系统A调用,然而系统A是无法访问系统B的网络,所以数据先要发送中间系统M。其实也就是一个简单的服务转发代理的功能,只是涉及到soap协议的交互。 这里给出一种简单的方式: 系统A使用soapui导入WSDL文件,获取每个方法的请求报文->提交M->原样提交到系统B->将系统B的处理结果返回 其中主要涉及到soap协议的一些报文头的设置,下边会有调用代码说明。 1,转发的实现 主要是在中间系统M注册filter来拦截webservice请求,然后将请求数据流构造一个新的http请求发送给系统B。这里请求的发送和转换 采用httpcomponents实现。引入依赖: <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.4</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore<