【问题标题】:Apache Commons Net FTPClient retrievefile method issue with Sterling Commerce ConnectSterling Commerce Connect 的 Apache Commons Net FTPClient 检索文件方法问题
【发布时间】:2010-02-18 12:04:35
【问题描述】:

我们一直在使用 apache commons net FTP 类通过代理连接到位于我们网络外部的 Sterling commerce FTP 网关以提取文件。我们不列出文件,因为我们知道要拉取的文件的名称,所以我们直接使用下面的方法拉取它。

boolean isTransferred = ftp.retrieveFile(remoteFileName, outputFile);

自 3 年以来一直有效,自过去 2 周以来我们一直面临问题。错误发生在上面的行并且是

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)

自过去 2 周以来,我们间歇性地面临这些问题,不确定其根本原因是什么。两边都没有改变。任何想法可能是什么问题?

谢谢, 拉维

【问题讨论】:

    标签: ftp apache-commons connect commerce


    【解决方案1】:

    FTPClient 默认使用“主动模式”,这是有问题的,因为它需要 FTP 客户端打开一个端口供 FTP 服务器连接回来。使用被动模式应该可以避免这个问题。连接并登录后,在您的 FTP 代码中添加以下行。

    FTPClient ftp = new FTPClient();
    // connect and login code here
    ftp.enterLocalPassiveMode();
    

    这应该可以解决您的问题。

    【讨论】:

      猜你喜欢
      • 2012-09-30
      • 2013-08-04
      • 2013-06-11
      • 2023-04-05
      • 2015-01-17
      • 2011-08-30
      • 2012-03-21
      • 2013-04-24
      • 2014-03-26
      相关资源
      最近更新 更多