JAVA FTPSClient文件列表问题

JAVA FTPSClient文件列表问题,java,apache-commons,nat,ftps,Java,Apache Commons,Nat,Ftps,我正在使用ApacheCommonsNet3.6库连接FTPS服务器。FTPS服务器位于第三方NAT之后。我无法更改服务器端的任何设置。 我可以登录到服务器,但不能列出文件。我在一些公共FTP和FTPS服务器上尝试了相同的代码,结果是成功的。看来他们并不支持纳特。但是filezilla可以成功连接并列出问题服务器中的文件。 这是我的密码 ftps.connect(server, port); System.out.println("Connected to " + s

我正在使用ApacheCommonsNet3.6库连接FTPS服务器。FTPS服务器位于第三方NAT之后。我无法更改服务器端的任何设置。 我可以登录到服务器,但不能列出文件。我在一些公共FTP和FTPS服务器上尝试了相同的代码,结果是成功的。看来他们并不支持纳特。但是filezilla可以成功连接并列出问题服务器中的文件。 这是我的密码

       ftps.connect(server, port);
       System.out.println("Connected to " + server + ".");

        reply = ftps.getReplyCode();
        ftps.enterLocalPassiveMode();
        if (!FTPReply.isPositiveCompletion(reply)) {
            ftps.disconnect();
            System.err.println("FTP server refused connection.");
            System.exit(1);
        }
        if (!ftps.login(username, password)) {
            ftps.logout();

        }
      //  ftps.setEnabledSessionCreation(false);
        ftps.feat();
        ftps.execPBSZ(0);
        ftps.execPROT("P");
        ftps.setFileType(FTP.BINARY_FILE_TYPE);  
        FTPFile dirs[] = ftps.listDirectories();
这是我的ftps日志:

220 FTP Server ready.
AUTH TLS
234 AUTH TLS successful
Connected to x.x.x.x
USER *******
331 Password required for azercell
PASS *******
230 User myuser logged in
FEAT
211-Features:
 MDTM
 MFMT
 LANG bg-BG;en-US;fr-FR;it-IT;ja-JP;ko-KR;ru-RU;zh-CN;zh-TW
 TVFS
 UTF8
 AUTH TLS
 MFF modify;UNIX.group;UNIX.mode;
 MLST modify*;perm*;size*;type*;unique*;UNIX.group*;UNIX.mode*;UNIX.owner*;
 PBSZ
 PROT
 REST STREAM
 SIZE
211 End
PBSZ 0
200 PBSZ 0 successful
PROT P
200 Protection set to Private
TYPE I
200 Type set to I
SYST
215 UNIX Type: L8
PASV
227 Entering Passive Mode (192,168,2,50,192,12).
[Replacing PASV mode reply address 192.168.2.50 with x.x.x.x]
LIST
150 Opening BINARY mode data connection for file list
425 Unable to build data connection: Operation not permitted
我读到3.6版之前的commons网络库无法正确处理NAT连接


有人能帮我吗?我的代码出了什么问题?

所以我的结论是问题与NAT技术无关,apache commons 3.6不能正确处理所有FTPS选项。正如我之前提到的,我们正在与第三方集成,并且没有更改FTPS设置的选项,至少我们安装了filezilla ftp服务器,并且能够重现错误。幸运的是,我在Luke Hansen的帮助下找到了解决方案。非常感谢他

这可能是一个愚蠢的答案,但您写了“但是filezilla可以成功连接并列出文件”,这样您就可以看到文件,而不是目录,也许目录是私有的,但不是文件,所以请尝试FTPFile[]files1=ftps.listFiles();Lizamperouge,我以前试过。相同的错误好的,你确定你在正确的目录中吗?尝试ftps.printWorkingDirectory();ftps.changeWorkingDirectory(“/directory”);对我敢肯定。İ试过但不起作用这很奇怪,我的代码与你的完全相同,但顺序不同,但我不知道这是问题所在;我还看到我使用ApacheCommonsNet3.4而不是3.6。试试看