我正在使用Java SE6 Mustang,我正在尝试连接到使用SSL的Web服务。我用wsimport创建了Web服务客户端,我可以忽略异常:
javax.net.ssl.SSLHandshakeException:java.security.cert.CertificateException:不存在主题替代名称
答案 0 :(得分:0)
不,你不能忽视这个例外。
如果在创建客户端时出现此错误,则可以下载WSDL并使用它来执行生成。像这样的东西。但我不检查它。
wsimport -p com.test -wsdllocation https://192.168.1.200:8443/services/ws/service?wsdl service.wsdl
但是如果您在访问Web服务时遇到此错误,则可以禁用主机名chekcing。 以下是禁用主机名检查的示例。
static{
javax.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier(
new javax.net.ssl.HostnameVerifier(){
public boolean verify(String hostname,
javax.net.ssl.SSLSession sslSession) {
System.out.println("Verifying hostname: " + hostname);
return true;
}
});
}