NoSuchAlgorithmException:DH KeyPairGenerator在camel-ftp上不可用

时间:2018-09-27 21:43:18

标签: ftp apache-camel sftp jsch

我在一个项目中使用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(我的应用程序就是其中之一)。我已经在不同的环境中进行了检查,但是结果仍然是异常。

我真的不知道这可能是什么。任何人都有一些可能的原因的想法?

1 个答案:

答案 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