2012-04-05 3 views
0

org.apache.axis2.AxisFault:sun.security.validator.ValidatorException:PKIXパスの構築に失敗しました:sun.security.provider.certpath.SunCertPathBuilderException:要求されたターゲットへの有効な証明書パスを見つけることができませんorg.apache.axis2.AxisFault:sun.security.validator.ValidatorException:

私はbaove例外を取得しています。証明書が見つからないためです。

私は、第三者から提供された証明書の欄のみを使用して新しいJKSファイルを作成し、system.setProperty( "javax.net.XXXX")に設定すると動作します。 しかし、これにより、アプリケーション内の他の機能は、証明書を見つけることができないので機能しません。 私はクラスファイルを使用してjssecacertsを作成し、2つの証明書もインポートしましたが、システムプロパティでこのjssecaertsファイルを指し示して設定しても動作せず、すべて正常に動作します。

何が問題なのですか????

答えて

0

Axis2で使用する追加の証明書を自分でX509TrustManagerに追加し、それからSSLContextを作成することができます。これはthis answerに記載されています。

次に、Apache HttpClient 3.x SecureProtocolSocketFactoryAxis 2 documentation on the subjectを参照)を使用して、次のSSLSocketFactoryをAxis2に渡す必要があります。

+0

私は以下を行いました... SSLContext context = SSLContext.getInstance(protocolVersion); context.init(keyManagers、trustManagers、null); SSLSocketFactory socketFactory = context.getSocketFactory(); URL url =新しいURL(urlString); URLConnection connection = url.openConnection(); if(接続インスタンスのHttpsURLConnection){ ((HttpsURLConnection)接続) .setSSLSocketFactory(sslSocketFactory); connection.connect(); }私はtrustmanagersとkeymanagersを作成してロードしました。しかし、これ以降私は何をするべきかわかりません...コードで案内してください。 –

+1

'HttpsURLConnection'を無視します。これはApache HttpClient 3.x' SecureProtocolSocketFactoryあなたは登録する必要があります。 – Bruno

+0

エラーが発生しました.org.apache.axis2.AxisFault:未接続のソケットが実装されていません at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430) at org.apache.axis2.transport.http。 HTTPSender.sendViaPost(HTTPSender.java:203) at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:76) at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender。 java:400) at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:225) –

関連する問題