Java org.apache.axis2.AxisFault:sun.security.validator.validator异常:

Java org.apache.axis2.AxisFault:sun.security.validator.validator异常:,java,ssl,https,axis2,Java,Ssl,Https,Axis2,org.apache.axis2.AxisFault:sun.security.validator.validator异常:PKIX路径生成失败:sun.security.provider.certpath.SunCertPathBuilderException:找不到请求目标的有效认证路径 我得到了baove异常,我知道这是因为它无法找到证书 当我创建了一个新的JKS文件,其中只包含第三方提供的证书条目,并在system.setProperty(“javax.net.XXXX”)中进行了设置时

org.apache.axis2.AxisFault:sun.security.validator.validator异常:PKIX路径生成失败:sun.security.provider.certpath.SunCertPathBuilderException:找不到请求目标的有效认证路径

我得到了baove异常,我知道这是因为它无法找到证书

当我创建了一个新的JKS文件,其中只包含第三方提供的证书条目,并在system.setProperty(“javax.net.XXXX”)中进行了设置时,它就工作了。 但由于这个原因,我的应用程序中的其他功能无法工作,因为它无法找到任何证书。 因此,我使用类文件创建了JSSECARTS,并导入了两个证书,但是指向并在系统属性中设置这个JSSECARTS文件,它不工作,rest一切正常


有什么问题?

您可以在自己的
X509TrustManager
中添加额外的证书供Axis2使用,并从中构建
SSLContext
。这在中进行了描述


然后,您必须使用ApacheHttpClient 3.x(请参阅)将随后的
SSLSocketFactory
传递给Axis2。

我执行了以下操作…SSLContext context=SSLContext.getInstance(protocolVersion);init(keyManagers,trustManagers,null);SSLSocketFactory-socketFactory=context.getSocketFactory();URL=新URL(URL字符串);URLConnection=url.openConnection();if(HttpsURLConnection的连接实例){((HttpsURLConnection)连接)。setSSLSocketFactory(sslSocketFactory);connection.connect();}我创建并加载了信任管理器和密钥管理器。但在此之后,我不知道该做什么…请您通过代码引导忽略
HttpsURLConnection
,这是您自己实现的Apache HttpClient 3.x
SecureProtocolSocketFactory
您需要注册。它给了我以下错误..org.Apache.axis2.AxisFault:org.Apache.axis2.AxisFault.makeFault(AxisFault.java:430)上未实现的未连接套接字,org.Apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:203)在org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:76)在org.apache.axis2.transport.http.commonhttptransportsender.writeMessageWithCommons(commonHttpTransportSender.java:400)在org.apache.axis2.transport.http.commonHttpTransportSender.invoke(commonHttpTransportSender.java:225)上Bruno你能帮我写一点代码吗..我在这方面没有太多经验..会非常感激的..请帮我..创建sslsocketfactory实例后要做什么..有一个较长的例子:你需要做一些类似于
SSLContextedSecureReprotocolSocketFactory
的事情或使用它。你需要的是注册 协议之后与该工厂签订。