目前,我的系统通过FTP将文件从AS400发送到大型机。下游大型机系统将不再支持FTP。 FTPS将是向其发送文件的唯一方法。

当前,我们使用com.ibm.as400.access.FTP和此程序包执行FTP命令。我想知道FTPS可以从AS400到大型机使用什么软件包。

当前的ftp代码如下:

boolean FTPFile(String filepath, String filename, String country) {
    String ftpresult = "";

    String region = bundle.getString("region." + country);
    FTP ftp = new FTP(ftpHost, ftpId, ftpPw);

    try {
        if (country.equals("766") || country.equals("858")
                || country.equals("761") || country.equals("836")) {
            ftp.setDataTransferType(FTP.BINARY);
        }

        if (ftp.connect()) {
            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);

            // Korea
            if (country.equals("766") || country.equals("761")) {
                ftp.issueCommand("ltype c 933");
                // ftpresult = ftp.issueCommand("type b 6");
            }

            // Taiwan
            if (country.equals("858") || country.equals("836")) {
                ftp.issueCommand("ltype c 937");
                // ftpresult = ftp.issueCommand("type b 8");
            }

            boolean ftp_res = ftp.put(filepath + filename, sendname);
            // System.out.println("ftp result: " + ftp_res);
            getLogMsg().append("ftp result (sending SIF): " + ftp_res,
                    LogMsg.TEXT_MSG);

            ftpresult = ftp.issueCommand("site filetype=jes");
            System.out.println("ftp command result = " + ftpresult);
            String jobname = bundle.getString("app.sif.jobname." + country);

            // String jobname = "CISBL30D";
            ftp.setDataTransferType(FTP.ASCII);
            ftp_res = ftp.put(bundle.getString("app.sif.directory") + "/"
                    + region + country + "/jcl.txt", "jcl.txt '" + jobname
                    + "'");
            getLogMsg().append("ftp result (sending jcl): " + ftp_res,
                    LogMsg.TEXT_MSG);

            return true;
        }
    } catch(...) {}
}

最佳答案

我已经使用Apache COMMONS Net module进行普通的FTP。

它确实有一个FTPSClient类,该类应该执行您想要的操作。

关于java - 使用FTPS将文件从AS400分发到大型机,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48180493/

10-10 14:56