【发布时间】:2025-12-19 19:15:06
【问题描述】:
背景
我正在开发一个使用 spring-integration 通过 ftp 检索文件的应用程序。我正在使用 spring-integration 的 ftp 入站适配器之一。然而,即使经过我的反复尝试,我也无法让它工作。所以我开始查看代码,发现它使用 apache commons net api。
问题
使用 apache commons net 库,我以相同的方式在本地编写代码,但它不起作用。这是代码-
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("");
【问题讨论】:
-
向我们展示这两种情况的日志文件。
标签: ftp spring-integration apache-commons-net