如何观看来自FTP STOR命令的额外响应?

时间:2019-02-25 18:07:55

标签: java apache-commons ftp-client

我正在使用FTPClient将文件存储到在大型机环境中运行的FTP服务器。从技术上讲,它不是存储文件,而是将其用作要在环境中提交的作业。如果FTP服务器在Linux上运行,则可以认为这是执行Shell脚本。

文件发送后,FTP服务器会发回多个响应,但FTPClient会选择第一个作为响应代码和字符串。

示例:

STOR JOB.TXT
125 Sending Job to JES internal reader FIXrecfm 80
QUIT
250-It is known to JES as JOBXXXXX
250 Transfer completed successfully.

所以FTPClient告诉我响应是“ 125将作业发送到JES”,而不是“ 250传输成功完成”。因此,在真正获得良好响应之前,我会过早关闭FTP(如示例所示)。

如何获取与命令相关的所有响应,以确保命令成功或失败?

我尝试将client.getReplyCode()放入循环中,直到它不等于125,但卡在无限循环中为止。

示例代码:

        final OutputStream os = client.storeFileStream("JOB.TXT");
        os.write(job.getBytes());
        os.close();

        int reply = client.getReplyCode();
        if ((reply != 125) && (!FTPReply.isPositiveCompletion(reply))) {
            throw new IOException("Failed to submit the job, reply " + reply + ", "
                    + client.getReplyString());
        }

0 个答案:

没有答案