サービスプロバイダが片道TLSを実装しているAXISベースのWebサービスに取り組んでいます。このサービスを使用するには、javax.net.ssl.keyStoreまたはjavax.net.ssl.trustStoreを使用してweblogicスタートアップスクリプトでキーストアとトラストストアのプロパティを提供しました。我々はテストを実行している場合はAXIS WebサービスがWeblogicサーバで定義されたトラストストアを使用していません
、我々は例外の下になっている:java.security.NoSuchAlgorithmException:
による誤差の実装を構築(アルゴリズム:デフォルト、プロバイダを:IBMJSSE2、クラス:com.ibm.jsse2。 ec) at java.security.Provider $ Service.newInstance(Provider.java:1271) at sun.security.jca.GetInstance.getInstance(GetInstance.java:249) at sun.security.jca.GetInstance.getInstance( (SSLContext.java:26) SSLSocketFac tory.getDefault(SSLSocketFactory.java:23)org.apache.axis.components.net.JSSESocketFactory.createでorg.apache.axis.components.net.JSSESocketFactory.initFactory(JSSESocketFactory.java:87) で (JSSESocketFactory。 Javaの:java.lang.Exceptionを::によって引き起こさ105) ... 22もっと
トラストストア・ファイルが存在しません:com.ibm.jsse2.rc.aで/home/apps/weblogic/.keystore を( rc.java:38) com.ibm.jsse2.ec.f(ec.java:19) at com.ibm.jsse2.ec。 <INIT> sun.reflect.DelegatingConstructorAccessorImpl.newInstanceでsun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:86) でsun.reflect.NativeConstructorAccessorImpl.newInstance0(ネイティブメソッド) で(ec.java:21) (DelegatingConstructorAccessorImpl .java:58) java.lang.reflect.Constructor.newInstance(Constructor.java:542) でよりjava.security.Provider $ Service.newInstance(Provider.java:1252) ... 29
でキーストア/トラストストアのプロパティを設定した後であっても、/home/apps/weblogic/.keystoreの場所を選択する場所がわからないことがあります。私はAXISのJARファイルをチェックすると
は、私はorg.apache.axis.components.net.SunJSSESocketFactoryクラスで私たちはトラストストアのデフォルトプロパティの下に持っていることを見た:
静的ブールdefaultClientAuth =偽; プライベートboolean clientAuth = false; 静的String defaultKeystoreFile = System.getProperty( "user.home")+ "/.keystore"; 静的String defaultKeyPass = "changeit";
AXIS APIがコマンドライン引数で提供されているものの代わりにこのデフォルトのキーストアを使用している理由は誰でも説明できます。