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