我有一个在tomcat 5.5上运行正常的java应用程序。但是当部署在WAS 7上时,它会引发异常。它尝试连接到sftp服务器以检索某些文件,但它会引发异常。
Caused by: java.lang.NoClassDefFoundError: sun.security.util.DerValue
at com.sun.crypto.provider.DHPublicKey.<init>(DashoA12275)
at com.sun.crypto.provider.DHKeyPairGenerator.generateKeyPair(DashoA12275)
at java.security.KeyPairGenerator$KeyPairGeneratorImpl.generateKeyPair(KeyPairGenerator.java:234)
at com.jcraft.jsch.jce.DH.getE(DH.java:57)
at com.jcraft.jsch.DHG1.init(DHG1.java:110)
at com.jcraft.jsch.Session.receive_kexinit(Session.java:601)
at com.jcraft.jsch.Session.connect(Session.java:320)
at com.jcraft.jsch.Session.connect(Session.java:183)
java.security文件包含以下提供程序:
security.provider.1=com.sun.crypto.provider.SunJCE
security.provider.2=com.ibm.crypto.provider.IBMJCE
我迷路了。任何的想法? 感谢
答案 0 :(得分:0)
正如包所述,DerValue是一个Sun类。
sun.security.util.DerValue
WebSphere使用IBM JDK,不包括此类。仅支持IBM JCE提供程序。
security.provider.1 = com.sun.crypto.provider.SunJCE
取消这条线可能会解决您的问题,应用程序将按预期运行。
如果您打算使用SunJCE,请查看this IBM tutorial。
使用IBM默认实现是一个更容易的选择,我会这样做。我不建议将Sun JCE添加为自定义提供程序,因为您需要将此步骤作为部署应用程序的先决条件,并在每次需要更改新服务器时重现它。