0

私の Java アプリケーションでは、クライアント側で Java のキーストア機能を使用しました。Oracle と IBM Java 環境の両方をサポートしています。基本的に、コードは次のようになります。

試す {

        KeyStore ks = KeyStore.getInstance("JKS");

        MyResources gr = new MyResources(null);
        InputStream inpStream = gr.GetResourceAsStream(MYFILE);

        if (inpStream == null) {

        }

        ks.load(inpStream, MYPASSWORD);

        TrustManagerFactory Mytmf = null;

        try {
            Mytmf = TrustManagerFactory.getInstance("SUNX509");
        } catch (NoSuchAlgorithmException e) {
            Mytmf = TrustManagerFactory.getInstance("IbmX509");
        }

        Mytmf.init(ks);


    } catch (Exception e) {

    }

このプログラムは、IBM JRE 1.6 以前のバージョンで正常に動作します。バージョン 1.7 では、サーバーへの接続試行の場合、次の例外が受信され、最後に失敗します。

スレッド「myThread」での例外 java.lang.NoClassDefFoundError: sun/security/validator/KeyStores 09:06:46>> at sun.security.ssl.X509TrustManagerImpl.(X509TrustManagerImpl.java:80) 09:06:46>> at sun.security.ssl.TrustManagerFactoryImpl$SimpleFactory.getInstance(TrustManagerFactoryImpl.java:240) 09:06:46>> で sun.security.ssl.TrustManagerFactoryImpl.engineInit(TrustManagerFactoryImpl.java:79) 09:06:46>> でjavax.net.ssl.TrustManagerFactory.init(TrustManagerFactory.java:19) 09:06:46>> MyTrustMgr.getTrustManager(MyTrustMgr.java:34)で

この問題の原因は何か分かりますか?

4

1 に答える 1