我有一个java Web应用程序,可以在文件夹中创建文件。这些文件是通过骆驼路由获取的,pgp对其进行加密,然后对其进行ftp。最初,我把它作为一条路线,它在我的Windows服务器上工作。然后它停止了工作。因此,即使ftp失败,我也将它分成两条路径,但我没有在服务器上放置未加密的文件。另外,如果需要,我可以手动ftp这些(不理想)。现在,它适用于一台服务器而不是另一台服务器。两者都是Windows服务器,我的应用服务器是tomcat。
是否有可靠的方法使这项服务跨服务器工作?
路线如下所示
<route id="file_encrypt">
<from uri="file://{{rootOutputDirectory}}/thirdparty/outbound?readLock=rename&delete=true"/>
<setHeader headerName="cryptoKeyFile">
<simple>${properties:thirdparty.pgpkey}</simple>
</setHeader>
<to uri="bean:PGPEncryptProcessor"/>
<to uri="file://{{rootOutputDirectory}}/thirdparty/outbound/encrypted"/>
</route>
<route id="file_ftp">
<from uri="file://{{rootOutputDirectory}}/thirdparty/outbound/encrypted/?readLock=rename&move=.done&moveFailed=.error"/>
<to uri="ftp://{{thirdparty.ftp.user}}@{{thirdparty.ftp.url}}{{thirdparty.ftp.outgoingdir}}/?password={{thirdparty.ftp.password}}&binary=true"/>
</route>
thirdparty.ftp.outgoingdir
的值是
thirdparty.ftp.outgoingdir=/test/incoming
我在日志中看到以下错误
org.apache.camel.component.file.GenericFileOperationFailedException: File operation failed: 550 Failed to change directory.
这似乎是此处列出的问题 - http://camel.465427.n5.nabble.com/Cannot-change-directory-to-quot-Code-550-on-FTP-component-td5734612.html。但是,目前尚不清楚为什么它在一台服务器上运行而在另一台服务器上运行,但设置相同。
答案 0 :(得分:0)
事实证明,不同服务器之间的公共网络版本是不同的 - 一个有3.1(工作),另一个有3.2(不工作)。我不确定是怎么回事(调查它)。但是,在所有服务器上将commons-net切换到3.1都可以使它工作。