Как посмотреть дополнительные ответы от команды FTP STOR? - PullRequest
0 голосов
/ 25 февраля 2019

Я использую FTPClient для хранения файла на FTP-сервере, который работает в среде мэйнфреймов.Технически это не сохранение файла, а использование его в качестве задания, которое должно быть передано в среду.Это можно рассматривать как выполнение сценария оболочки, если FTP-сервер работал в linux.

После отправки файла 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());
        }
...