【问题标题】:FTP server dies while ftp4j client downloads a fileftp4j 客户端下载文件时 FTP 服务器死机
【发布时间】:2013-04-17 08:53:21
【问题描述】:

我使用 sauronsoftware.ftp4j.FTPClient 从 FTP 服务器进行预定的文件下载。 我的问题是当客户端从它下载文件时 FTP 服务器突然死掉了。 这就是我所做的:

       for (FTPFile remoteFile : remoteFiles) {

                String remoteFileName = remoteFile.getName();
                String localPath = ftpDir.getLocalPath() + remoteFileName;
                log.debug("Downloading remote file {} to local path {}", remoteFileName, localPath);
                try {
                    client.download(remoteFileName, new File(localPath));

                    if (!ftpDir.isLeaveFilesOnServer()) {
                        //Delete remote file
                        client.deleteFile(remoteFileName);                            
                    }

                } catch (IllegalStateException e) {

                    log.error("FTPException ",e);

                    fcr.addErrorFile(remoteFileName);

                } catch (IOException e) {

                    log.error("FTPException ",e);

问题在于 download(...) 由单独的线程运行,当 FTP 服务器死机时,该线程继续运行,就像永远一样。有没有办法解决这个问题,或者我应该使用另一个可以处理这种情况的 FTP 客户端?

【问题讨论】:

标签: java ftp ftp-client ftp4j


【解决方案1】:

我不确定您的问题是否是您的 FTP 连接突然中断,或者问题是主线程在文件下载之前完成了它的执行。如果我们谈论的是第二种情况,那么也许您可以使用同一个 FTPClient 类的其他方法:

public void download(java.lang.String remoteFileName,
                 java.io.File localFile,
                 FTPDataTransferListener listener)

然后让主线程等到所有下载完成后再结束

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-15
    • 2021-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多