小さな更新: さらに接続すると、次のようになります(デバッグ情報の続き):
200 PROT P OK, data channel will be secured.
CCC
200 CCC Context Enabled.
PASV
Exception:Could not parse response code.
Server Reply: ': command not understood.
サーバーを制御できないプロジェクトに取り組んでいます。明示的な 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 の使用に関する以前のエラーが修正されたと思います。また、注意してください、私は execCCC を PROT/PBSZ の前に配置しようとしましたが、それでも CCC コマンドでハングします。これは私を悩ませているので、助けていただければ幸いです。