我正在用Anypoint Studio创建一个简单的Mule流-它会定期轮询目录,当文件放在目录中时,它会将其发送到SFTP服务器。但是,当应用程序开始与服务器协商安全连接时,它将失败并显示以下错误:
java.io.IOException:登录到username @ host时出错:Session.connect:java.security.InvalidAlgorithmParameterException:DH密钥大小必须是64的倍数,并且只能在512到8192(含)范围内。不支持特定的密钥大小2047
堆栈跟踪引用了jsch库中的几个文件。先前问题中的解决方案建议使用其他版本的jsch或自己编辑jsch jar升级到Java 8。我的Mule服务器(版本3.9.0 EE)已经在Java 8上,我尝试了几种不同版本的jsch,并且编辑jars是不切实际的,因为此应用程序将部署到几种不同的环境中。
通过WinSCP,我可以使用与应用程序相同的凭据登录sftp服务器。一位同事尝试修改工作流程以使用相同的凭据移动相同的文件,并且他们收到相同的错误。这是我流程的XML:
<flow name="ClCoFlow">
<file:inbound-endpoint path="${file.from}"
moveToDirectory="${file.backup}" responseTimeout="10000"
doc:name="Get File to Transfer" />
<logger
message="#[flowVars.originalFilename] being moved to #[flowVars.moveToDirectory]"
level="INFO" doc:name="File In" />
<sftp:outbound-endpoint exchange-pattern="one-way"
host="${sftp.host}" port="${sftp.port}" path="${sftp.path}" user="${sftp.user}"
password="${sftp.password}" responseTimeout="10000" doc:name="SFTP" />
<logger message="#[flowVars.originalFilename] sent to sftp service"
level="INFO" doc:name="File sent" />
</flow>
预先感谢您可以提供的任何帮助
编辑
尽管Mule是基于Java构建的,并且Mule应用程序是使用Java和Spring在后台构建的,但是并没有编写创建Mule流所涉及的实际Java代码。
狐的传说
相关分类