这个问题已被编辑。我试图列出FTP目录中的所有文件 - 虽然代码在正常的Netbeans项目中运行时工作正常,但在Maven项目中使用相同的代码时会导致连接超时421 。我怎么能摆脱这个?
代码:
FTPClient ftpClient = new FTPClient();
ftpClient.connect(host, 21);
ftpClient.login(user, pass);
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_UNIX);
ftpClient.configure(conf);
inputStream = FTPUtil.downloadSingleFile(ftpClient, filePath);
ftpClient.list(); // It works
ftpClient.listNames("/"); // It works
ftpClient.changeWorkingDirectory("/"); // It works
FTPFile[] files = ftpClient.listFiles("/");// It hangs and stops 421 connection timed out
FileZilla日志是: -
(000370)04-04-2013 16:04:32 - (not logged in) (127.0.0.1)> Connected, sending welcome message...
(000370)04-04-2013 16:04:32 - (not logged in) (127.0.0.1)> 220 ftp connection started...
(000370)04-04-2013 16:04:32 - (not logged in) (127.0.0.1)> USER raja
(000370)04-04-2013 16:04:32 - (not logged in) (127.0.0.1)> 331 Password required for raja
(000370)04-04-2013 16:04:32 - (not logged in) (127.0.0.1)> PASS ****
(000370)04-04-2013 16:04:32 - raja (127.0.0.1)> 230 Logged on
(000370)04-04-2013 16:04:32 - raja (127.0.0.1)> TYPE I
(000370)04-04-2013 16:04:32 - raja (127.0.0.1)> 200 Type set to I
(000370)04-04-2013 16:04:32 - raja (127.0.0.1)> PASV
(000370)04-04-2013 16:04:32 - raja (127.0.0.1)> 227 Entering Passive Mode (127,0,0,1,237,187)
(000370)04-04-2013 16:04:32 - raja (127.0.0.1)> SYST
(000370)04-04-2013 16:04:32 - raja (127.0.0.1)> 215 UNIX emulated by FileZilla
(000366)04-04-2013 16:04:33 - raja (127.0.0.1)> 421 Connection timed out.
客户方例外情况如下: -
答案 0 :(得分:0)
当FTP服务器针对 SYST 命令返回 null 时,apache-commons 1.4.1在处理解析异常时存在严重问题。我尝试使用版本3.2,问题得到解决。