非標準のFTPコマンドを特定のサーバー(それらを受け入れる)に送信する必要があるため、apachecommonsを使用して手動のFTPコマンドを送信しようとしています。
これらの非標準コマンドを送信する前に、commons.net.ftpを使用してFTPを手動で動作させたいと思います。残念ながら、何かが足りないようです。
これは正常に機能します(つまり、ファイルのリストを取得します)
FTPClient ftp = new FTPClient();
FTPClientConfig config = new FTPClientConfig();
ftp.configure(config);
ftp.connect("ftp.mozilla.org");
ftp.login("anonymous", "");
ftp.enterLocalPassiveMode();
FTPFile[] fileList = ftp.listFiles("/");
これはしません
FTPClient ftp = new FTPClient();
FTPClientConfig config = new FTPClientConfig();
ftp.configure(config);
ftp.connect("ftp.mozilla.org");
ftp.login("anonymous", "");
ftp.sendCommand("PASV");
ftp.sendCommand("NLST");
私は適切な応答を受け取りますが、最終的に私に与えることftp.sendCommand("PASV");
でタイムアウトになりますftp.sendCommand("NLST");
425 Failed to establish connection.
私はこのトピックを調査しようとしましたが、このエラーに関するほとんどのアドバイスは、サーバーをセットアップする人向けです(通常はファイアウォールの問題です)。
net.ftp
コマンドを手動で送信したときに機能しないのに、なぜ機能するのですか?