2010-11-01 179 views
1

我试图在SSL模式下连接一个java应用程序(使用IBM java 1.6.0 64位)连接到服务器,但会失败,并显示以下错误:使用SSL模式时出错:java.lang.NoClassDefFoundError:javax.crypto.b(初始化失败)

Exception in thread "main" java.lang.NoClassDefFoundError: javax.crypto.b (initialization failure) 
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:138) 
    at javax.crypto.KeyGenerator.a(Unknown Source) 
    at javax.crypto.KeyGenerator.<init>(Unknown Source) 
    at javax.crypto.KeyGenerator.getInstance(Unknown Source) 
    at com.ibm.jsse2.pb.d(pb.java:24) 
    at com.ibm.jsse2.fb.<init>(fb.java:7) 
    at com.ibm.jsse2.hb.a(hb.java:200) 
    at com.ibm.jsse2.hb.a(hb.java:208) 
    at com.ibm.jsse2.gb.n(gb.java:239) 
    at com.ibm.jsse2.gb.a(gb.java:228) 
    at com.ibm.jsse2.sc.a(sc.java:228) 
    at com.ibm.jsse2.sc.g(sc.java:451) 
    at com.ibm.jsse2.sc.a(sc.java:39) 
    at com.ibm.jsse2.j.write(j.java:6) 
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:77) 
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:135) 
    at com.ingrian.internal.xml.XMLVersionRequest.write(Unknown Source) 
    at com.ingrian.internal.session.Connection.e(Unknown Source) 
    at com.ingrian.internal.session.Connection.a(Unknown Source) 
    at com.ingrian.internal.session.c.e(Unknown Source) 
    at com.ingrian.internal.session.c.a(Unknown Source) 
    at com.ingrian.internal.session.RoundRobinBalancer.a(Unknown Source) 
    at com.ingrian.internal.session.Session.getConnectionImpl(Unknown Source) 
    at com.ingrian.internal.session.Session.getConnectionImpl(Unknown Source) 
    at com.ingrian.internal.session.Session.a(Unknown Source) 
    at com.ingrian.internal.session.Session.<init>(Unknown Source) 
    at com.ingrian.security.nae.NAESession.<init>(Unknown Source) 
    at com.ingrian.security.nae.NAESession.getSession(Unknown Source) 
    at CryptoTool.main(CryptoTool.java:910) 

与TCP协议运行时相同的应用程序成功连接到服务器。

我试着用google搜索它,但除了下面的内容(交换JCE提供程序)没有找到太多的信息,但也没有工作。 link text

这是IBM java的问题还是配置问题? '将不胜感激任何帮助。谢谢。

+0

您是否在运行该代码的JRE中安装了JCE?如果是这样,你使用IBM JCE吗? – Florian 2014-06-26 11:28:00

回答

0

crypo东西是一个单独的安装或选项? IBM已经知道在过去分离这种产品。

+0

服务器证书是从自签名的CA签署的。我已将服务器证书添加到客户端的Java密钥库中。但我怀疑,连接甚至没有进入该阶段(身份验证),它在客户端的SSL设置(连接尝试)上失败。 – Ankur 2010-11-02 04:17:29

+0

什么是自签名证书或其他证书,完全与java.lang.NoClassDefFoundError有关? – EJP 2010-11-02 08:41:29

+0

在这种情况下,我要一步一步来。对不起,如果我不知道_everything_。当我在Java中看到SSL错误时,我检查的第一件事是证明确保没问题。 (它有我太多次。) – 2010-11-02 13:22:11

1

看起来像配置问题。在使用Ingrian时我有类似的错误。尝试增加可能有助于解决SSL连接问题的连接池,并尝试优化Ingrian Property File上的读取超时值。

0

这听起来像您更改了JRE安全文件夹中的jar文件。如果是这样,请确保您复制适合您的Java版本的版本。

0

它看起来像SSL配置问题。过去我遇到过类似的问题。确保证书正确配置。