对于通过Axis client访问WS时,如果协议为https则需要进行证书认证。
目前有两种方式可以进行访问
1、根据服务证书成功客户端证书,然后在调用WS前写入证书以便java能进行校验。
System.setProperty("javax.net.ssl.trustStore",
"d:\\SSL\\client.truststore");
System.setProperty("javax.net.ssl.trustStorePassword", "client");
对于SSLEnableProtocol只配置了TSLv1.2的还需加上
SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
sslContext.init(null, null, null);
SSLContext.setDefault(sslContext);
2、跳过证书认证。
对于只启用TSLv1.2的仍需进行证书认证。
AxisProperties.setProperty("axis.socketSecureFactory", "org.apache.axis.components.net.SunFakeTrustSocketFactory");
将原来的factotry改为忽略认证的factory。