FTP クライアントに ftp4j jar を使用しています。FTP サーバー (オープン VMS サーバー) が HTTP プロキシの背後にあるため、HTTP トンネル コネクタを使用しました。PWD 、 NOOP 、 CWD などの基本的なコマンドは正常に動作していますが、ディレクトリまたはファイルを LIST & NLIST しようとすると、しばらく何も起こらず、SocketTimeOutException が発生します。
以下は私のコードです
HTTPTunnelConnector httpTunnelConnector = new HTTPTunnelConnector("**********", 80);
httpTunnelConnector.setConnectionTimeout(100);
FTPCommunicationListener ftpCommunicationListener = new FTPCommunicationListener()
{
@Override
public void sent(String command)
{
System.out.println("SENT :: "+command);
}
@Override
public void received(String response)
{
System.out.println("RECEIVED :: "+response);
}
};
FTPClient ftpClient = new FTPClient();
ftpClient.addCommunicationListener(ftpCommunicationListener);
ftpClient.setConnector(httpTunnelConnector);
System.out.println("Connecting to FTP server ... ");
String[] connectResponse = ftpClient.connect("*********", 21);
for (String string : connectResponse) {
System.out.println(string);
}
System.out.println("logging to FTP server ...");
ftpClient.login("ftpsee", "seeftp");
System.out.println("Authenticated by FTP server :: "+ftpClient.isAuthenticated());
ftpClient.setPassive(true);
File file = new File(argument);
ftpClient.upload(file);
HTTPTunnelConnectorをFTPクライアントに追加している部分をコメントアウトすると、コードは正常に機能します(ただし、内部的に推測するFTPTunnelConnectorを使用します)
以下は私のエラーメッセージです java.net.SocketTimeoutException: Read time out