我在一个项目中使用Apache Camel,当我需要使用camel-ftp组件将一些文件发送到远程服务器时,我遇到了以下异常:
com.jcraft.jsch.JSchException: Session.connect: java.security.NoSuchAlgorithmException: DH KeyPairGenerator not available
我想知道为什么它会在我的项目中发生。因此,我开始了一个仅包含camel-core和camel-ftp组件的快速小型项目,并且将路由粘贴到了那里,效果很好。
from("file:data/input?noop=true")
.log("Uploading file ${file:name}")
.to("sftp://www.mydestination.com:22/../opt/tmp?autoCreate=false&username=MyUser&password=MyPassword&passiveMode=true")
.log("Uploaded file ${file:name} complete.");
我正在使用Apache Karaf运行OSGI Bundle(我的应用程序就是其中之一)。我已经在不同的环境中进行了检查,但是结果仍然是异常。
我真的不知道这可能是什么。任何人都有一些可能的原因的想法?
答案 0 :(得分:1)
DH KeyPair Generator通常是JRE / JSE的一部分,如果您的JDK(> BTW您使用的是哪个确切的JDK版本)应该包含在其中。 鉴于此,您的错误可能是由于错误的类路径引起的。
我建议您检查“ -Djava.ext.dirs”属性的值(以及相应文件夹的内容),例如:
Windows: java -Djava.ext.dirs =“ C:\ Program Files \ Java \ jdk1.6.0_07 \ jre \ lib \ ext; C:\ dir2”
Unix: java -Djava.ext.dirs = $ JAVA_HOME / jre / lib / ext:/ dir2
您还需要指定/修改Karaf安全提供程序,并查看: hammerspoon