Java Commons VFS和IBM MVS系统

Java Commons VFS和IBM MVS系统,java,unix,apache-commons-vfs,Java,Unix,Apache Commons Vfs,我正在使用ApacheCommonsVFS/SFTP,我们正在尝试从IBMMVS系统下载文件 下载部分很好,但是下载后我们无法打开压缩文件。似乎zip文件是使用不同的算法或其他方法压缩的 有人有什么建议吗 *注意,如果我们连接到常规的unix/linux SFTP服务器,同样的功能也可以正常工作 下面是我们所做的一个例子 String defaultHost = "[my sftp ip address]"; Str

我正在使用ApacheCommonsVFS/SFTP,我们正在尝试从IBMMVS系统下载文件

下载部分很好,但是下载后我们无法打开压缩文件。似乎zip文件是使用不同的算法或其他方法压缩的

有人有什么建议吗

*注意,如果我们连接到常规的unix/linux SFTP服务器,同样的功能也可以正常工作

下面是我们所做的一个例子

                    String defaultHost = "[my sftp ip address]";
                    String host = defaultHost;
                    String defaultRemotePath = "//__root.dir1.dir2.";
                    String remotePath = defaultRemotePath;
                    String user = "test";
                    String password = "test";
                    String remoteFileName = "Blah.ZIP.BLAH";

                    log.info("FtpPojo() begin instantiation");
                    FileObject localFileObject = fsManager.resolveFile("C:/Work/Blah.ZIP.BLAH");
                    log.debug("local file name is :"+localFileObject.getName().getBaseName());
                    log.debug("FtpPojo() instantiated and fsManager created");

                    String uri = createSftpUri(host, user, password) + ":322"+remotePath+remoteFileName;
                    remoteRepo = fsManager.resolveFile(uri, fsOptions);
                    remoteRepo.copyFrom(localFileObject, Selectors.SELECT_ALL);

我不是大型机专家,但我假设您连接的不是MVS,而是运行FTP或SSH守护程序的USS Unix系统服务。 我只尝试通过FTP从USS下载文件,使用常规的Windows FTP可以很好地交换和打开文件。没有二进制Though。 因此,我不认为您将获得EBCDIC编码的文件

你试过下载一个简单的文本文件吗?
你试过下载带有特殊字符的文本文件吗?e、 g.德语umlauts或其他非ASCII?

可以尝试以下几点:

指定二进制选项,因为我认为默认值是EBCDIC-ASCII转换。这会对zip文件造成可怕的影响。如果你能下载一个纯文本文件,那可能是你的麻烦

压缩后的数据可能是您的系统不喜欢的东西,例如PDS


请阅读本页

我想指出,我们使用了几种不同的框架,但除了SSH-Tectia之外,没有一种框架对我们有效。我们使用了Tectia客户端,下载的zip文件可以很好地解压。