背景
我正在开发一个使用spring-integration通过ftp检索文件的应用程序。我正在使用spring-integration的ftp入站适配器之一。然而,即使在我多次尝试之后,我也无法使其正常工作。所以我开始查看代码并发现它在包装下使用apache commons net api。
问题
使用apache commons网络库,我以相同的方式在本地编写代码,但它无法正常工作。这是代码 -
FTPClient client = new FTPClient();
client.connect("x.x.x.x", 21);
client.enterLocalPassiveMode();
client.login("xxx", "xxx");
FTPFile[] files = client.listFiles("/AMNH");
这会返回0行。这就是spring-integration执行调用的方式 - client.listFiles(" / AMNH")。因此返回的文件列表为0,即使我在ftp位置有文件,整个应用程序也处于空闲状态。
但是,如果我运行以下代码,我可以检索文件。当我们传递参数时,我想知道方法listFiles有什么问题,我们如何解决它?我这样说是因为我没有不执行listFiles(String pathName)
的奢侈FTPClient client = new FTPClient();
client.connect("x.x.x.x", 21);
client.enterLocalPassiveMode();
client.login("xxx", "xxx");
client.changeWorkingDirectory("/AMNH");
FTPFile[] files = client.listFiles("");
答案 0 :(得分:0)
请查看有关changeWorkingDirectory
的{{3}}。您只需要扩展DefaultFtpSessionFactory
并实施postProcessClientAfterConnect()
回调。