Данные Java FTPS из AS400 в Z / OS - PullRequest
       18

Данные Java FTPS из AS400 в Z / OS

0 голосов
/ 31 октября 2018

Я пытаюсь написать метод FTPS с помощью "org.apache.commons.net.ftp.FTPSClient" выполнение передачи данных из AS400 в Z / OS При выполнении FTPS произошли две ошибки.

Ошибка 1: поскольку нам нужно отправить файл в zos мэйнфреймов, необходима кодировка передачи данных файла, команда ftp «ltpye c 933» выполняется в последней версии метода ftp. Когда я использую "ftpsClient.sendCommand (" ltype c 933 ");" Чтобы выполнить эту команду, я получил ниже сообщение об ошибке (первое красное поле). сообщение об ошибке: 500 неизвестных команд ltype

Ошибка 2: Когда я запускаю «ftpsClient.storeFile» для загрузки файла на сервер zos, я получаю ошибку ниже (второе красное поле); сообщение об ошибке: 425-сервер требует защищенного подключения к данным 425 не может открыть соединение для передачи данных введите описание изображения здесь

Любой совет для меня? Вот мой код:

boolean FTPSFile(String filepath, String filename, String country) {
    String region = bundle.getString("region." + country);
    String protocol = "TLSv1.2"; // SSL/TLS
    FTPSClient ftpsClient = new FTPSClient(protocol);
    ftpsClient.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out)));

    try {
        ftpsClient.connect(ftpHost, 990);
        ftpsClient.login(ftpId, ftpPw);
        ftpsClient.setFileType(FTP.ASCII_FILE_TYPE);
        if (country.equals("766") || country.equals("858") 
                || country.equals("761") || country.equals("836")) {
            ftpsClient.setFileType(FTP.BINARY_FILE_TYPE);
        }
        ftpsClient.enterLocalPassiveMode();

        if (ftpsClient.isConnected()) {
            getLogMsg().append("FTPing SIF file.  Region = " + region,
                    LogMsg.TEXT_MSG);

            String sendname = "'" + ftpDataset + country + ".LSIFATB'";

            getLogMsg().append(
                    "sending file: = " + filepath + filename + " as "
                            + sendname, LogMsg.TEXT_MSG);

            if (country.equals("766") || country.equals("761")) {
                int returnCode = ftpsClient.sendCommand("ltype c 933");
                System.out.println("return code for command [ltype c 933] is :" + returnCode);
            }
            // Taiwan
            if (country.equals("858") || country.equals("836")) {
                int returnCode = ftpsClient.sendCommand("ltype c 937");
                System.out.println("return code for command [ltype c 937] is :" + returnCode);
            }
            InputStream input_sifData;

            input_sifData = new FileInputStream(filepath + filename);
            boolean ftp_res = ftpsClient.storeFile(sendname, input_sifData);

            input_sifData.close();
            getLogMsg().append("ftp result (sending SIF): " + ftp_res,
                    LogMsg.TEXT_MSG);

            int returnCode = ftpsClient.sendCommand("site filetype=jes");
            System.out.println("return code for command [site filetype=jes] is :" + returnCode);
            String jobname = bundle.getString("app.sif.jobname." + country);

            ftpsClient.setFileType(FTP.ASCII_FILE_TYPE);

            InputStream input_job;
            input_job = new FileInputStream(bundle.getString("app.sif.directory") + "/"
                    + region + country + "/jcl.txt");
            boolean ftp_res_job = ftpsClient.storeFile("jcl.txt '" + jobname
                    + "'", input_job);

            input_sifData.close();
            getLogMsg().append("ftp result (sending jcl): " + ftp_res_job,
                    LogMsg.TEXT_MSG);

            return true;
        } else {
            getLogMsg().append("Could not connect to the specified host.",
                    LogMsg.ERROR_MSG);
            return false;
        } 
    } catch (SocketException e1) {
        e1.printStackTrace();
        return false;
    } catch (IOException e1) {
    // TODO Auto-generated catch block
        e1.printStackTrace();
        return false;
    }
}
...