主要的原因是证书有问题,就是程序的IP地址和证书的IP地址不匹配。
这里是客户端报错,使用的是spring-ws
对应的Maven如下;
<dependency>
<groupId></groupId>
<artifactId>spring-ws-security</artifactId>
<version>3.0.</version>
</dependency>
<dependency>
<groupId></groupId>
<artifactId>spring-ws-core</artifactId>
<version>3.0.</version>
</dependency>
<dependency>
<groupId></groupId>
<artifactId>spring-ws-support</artifactId>
<version>3.0.</version>
</dependency>
生成的bean
@Bean
HttpsUrlConnectionMessageSender messageSender(
KeyStoreFactoryBean keyStore,
TrustManagersFactoryBean trustManagers
) throws Exception {
HttpsUrlConnectionMessageSender sender = new HttpsUrlConnectionMessageSender();
KeyManagersFactoryBean keyManagersFactoryBean = new KeyManagersFactoryBean();
(());
(KEYSTORE_PASSWORD);
();
(());
(());
(new TrustAnyHostnameVerifier());
return sender;
}
public class TrustAnyHostnameVerifier implements HostnameVerifier {
public boolean verify(String hostname, SSLSession session) {
return true;
}
}
这里调用代码:
@Autowired
HttpsUrlConnectionMessageSender sender;
public XXXResponse clear(String para){
XXXRequest request = new XXXRequest();
(para);
getWebServiceTemplate().setMessageSender(sender);
JAXBElement<XXXtResponse> o = (JAXBElement<XXXtResponse>)
getWebServiceTemplate().marshalSendAndReceive(":xxx/ws/xxxx", request);
return ();
}
这里要注意,要将生成的bean放到getWebserviceTemplate()的Sender中才能,不然不会生效的。