在WAS上找不到sun.security.util.DerValue

时间:2015-10-15 20:21:34

标签: java tomcat websphere sftp jsch

我有一个在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

我迷路了。任何的想法? 感谢

1 个答案:

答案 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添加为自定义提供程序,因为您需要将此步骤作为部署应用程序的先决条件,并在每次需要更改新服务器时重现它。