由于该对接比较复杂,而且涉及webservice 需要传参Heder。直接用JDK生成client的方式是无法实现的
摸索后用Axis1.4写出了完整的可用代码
1pom.xml 需要的jar
<dependencies>
<!-- axis 1.4 jar start -->
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>commons-discovery</groupId>
<artifactId>commons-discovery</artifactId>
<version>0.2</version>
</dependency>
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis-jaxrpc</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis-saaj</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
<version>1.4</version>
</dependency>
<!-- axis 1.4 jar end -->
</dependencies>
2.获取header需要的头部,首先请求签名方法
/**
* SOapHeader
*
* @return
*/
private SOAPHeaderElement getSoapHeader() {
//上面代码为从缓存中取到我们需求传递到认证头的数据 下面开始添加认证头
//上面代码为从缓存中取到我们需求传递到认证头的数据 下面开始添加认证头
Map<String, String> signInfo = this.getSignInfo();
String thirdType = signInfo.get("thirdType");
String secret1 = signInfo.get("secret1");
String secret2 = signInfo.get("secret2");
SOAPHeaderElement head = new SOAPHeaderElement(new QName("http://www.hzsun.com/", "SecurityHeader"));
try {
SOAPElement a1 &#