Java 无法从Apache Commons net实现获取文件列表

Java 无法从Apache Commons net实现获取文件列表,java,ftps,Java,Ftps,小更新: 如果它确实进一步连接,我会得到(继续调试信息): 我正在处理一个我无法控制服务器的项目。 它需要是一个明确的SSL连接,并使用一个清晰的命令通道。 它到达execCCC命令,然后暂停 FTPSClient pftps = new FTPSClient(false); pftps.addProtocolCommandListener(new PrintCommandListener(System.out)); pftps.setControlKeepAliveTimeout(300);

小更新: 如果它确实进一步连接,我会得到(继续调试信息):

我正在处理一个我无法控制服务器的项目。 它需要是一个明确的SSL连接,并使用一个清晰的命令通道。 它到达execCCC命令,然后暂停

FTPSClient pftps = new FTPSClient(false);
pftps.addProtocolCommandListener(new PrintCommandListener(System.out));
pftps.setControlKeepAliveTimeout(300);
try {
    pftps.setAuthValue("SSL");
    pftps.setUseEPSVwithIPv4(true);
    pftps.connect(result.getPershingHost(), 21);
    pftps.enterLocalPassiveMode();
    pftps.user(result.getPershingLoginId());
    pftps.pass(result.getPershingLoginPass());
    pftps.execPBSZ(0L);
    pftps.execPROT("P");
    pftps.execCCC();
    FTPFile[] files = pftps.listFiles();
    for (FTPFile file : files) {
        System.out.println(file);
    }
...
调试:

AUTH SSL
234 AUTH TLS-P/SSL OK.
USER myuser
331 Password required for myuser.
PASS password
230 Connect:Enterprise UNIX login ok, access restrictions apply.
PBSZ 0
200 PBSZ 0 OK.
PROT P
200 PROT P OK, data channel will be secured.
CCC
200 CCC Context Enabled.
有几次我遇到一个错误,比如解析SYST命令响应时出错,但有9/10次,它只是在这里暂停。 我正在使用commons net 3.3,我认为它修复了以前关于使用CCC的错误。 另外,要注意的是,我尝试将execcc放在PROT/PBSZ之前,它甚至挂起在CCC命令上。
我将非常感谢您的帮助,因为这让我非常恼火。

您是否尝试了端口
22
而不是
21
?因为它是
sftp
,所以实际上是FTPS使用显式SSL。这将在端口21上连接。
AUTH SSL
234 AUTH TLS-P/SSL OK.
USER myuser
331 Password required for myuser.
PASS password
230 Connect:Enterprise UNIX login ok, access restrictions apply.
PBSZ 0
200 PBSZ 0 OK.
PROT P
200 PROT P OK, data channel will be secured.
CCC
200 CCC Context Enabled.