rav*_*kar 1 ftp commerce connect apache-commons
我们一直在使用 apache commons net FTP 类通过代理连接到位于我们网络外部的 Sterling commerce FTP 网关以提取文件。我们不列出文件,因为我们知道要拉取的文件的名称,因此我们使用以下方法直接拉取它。
boolean isTransferred = ftp.retrieveFile(remoteFileName, 输出文件);
它已经运行了 3 年,自过去两周以来我们一直面临问题。错误发生在上面一行,并且是
org.apache.commons.net.ftp.FTPConnectionClosedException:收到 FTP 响应 421。服务器关闭连接。org.apache.commons.net.ftp.FTP.__getReply(FTP.java:347) org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:450) org.apache.commons.net.ftp。 FTP.sendCommand(FTP.java:478) org.apache.commons.net.ftp.FTPClient。openDataConnection (FTPClient.java:476) org.apache.commons.net.ftp.FTPClient.retrieveFile(FTPClient.java:1228)
自过去两周以来,我们间歇性地面临这些问题,但不确定其根本原因是什么。双方都没有任何改变。有什么想法可能是什么问题吗?
谢谢,拉维
小智 5
FTPClient 默认使用“主动模式”,这是有问题的,因为它需要 FTP 客户端打开一个端口供 FTP 服务器连接回来。使用被动模式应该可以避免这个问题。连接并登录后,在 FTP 代码中添加以下行。
FTPClient ftp = new FTPClient();
// connect and login code here
ftp.enterLocalPassiveMode();
Run Code Online (Sandbox Code Playgroud)
这应该可以解决你的问题。
| 归档时间: |
|
| 查看次数: |
7104 次 |
| 最近记录: |