Java EE应用,其中存在使用SoapClient的对象 SOAP调用(部署在Wildfly 9):禁用证书检查
SOAPMessage reply = con.call(message, url);
我收到以下消息:
引起通过:sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到有效的证书路径到要求的目标
在sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1949) 在org.apache.cxf.transport.http.URLConnectionHTTPConduit $ URLConnectionWrappedOutputStream.setupWrappedStream(URLConnectionHTTPConduit.java:183)
由于证书的问题,试图绕过错误:
TrustManager[] trustAllCerts = new TrustManager[]{
new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
return null;
}
public void checkServerTrusted(X509Certificate[] certs, String authType) throws CertificateException {
return;
}
public void checkClientTrusted(X509Certificate[] certs, String authType) throws CertificateException {
return;
}
}
};
SSLContext sc = SSLContext.getInstance("SSL");
sc.init(null, trustAllCerts, new SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
soapConnectionFactory = SOAPConnectionFactory.newInstance();
这didn't有什么影响
任何想法?
我的问题是:请勿使用Spring和鸵鸟政策有WSDL文件。这个调用只需创建一个SOAP客户端(SOAPConnectionFactory.createConnection()),稍后使用call方法和message/URL作为参数调用SOAP方法。 – kandan
了解必须设置HTTP Conduit对象的TLS参数。但有没有其他方法?也许在standalone.xml里面有一些配置,我不知道。使用蜻蜓9. – kandan
对不起,我不知道这件事。关键是要查看CXF/Saaj实现,以了解CXF如何从SOAPMessageFactory开始构建其传输管道。错误的完整堆栈跟踪可以帮助您浏览代码。 – GPI