ftp之FTPConnectionClosedException解决

Posted on

ftp关闭异常总结

使用apache的ftp时,在数据量大的时候,在后台会报异常
org.apache.commons.net.ftp.FTPConnectionClosedException: Connection closed without indication.

错误原因大致有三种:
1.FTP服务器服务有故障,或是是网络问题。

  1. FTP response 421 received. Server closed connection.//错误原因就是FTP服务器端连接数满了。
  2. FTP服务器自动断开链接时间过长的闲置ftp链接。

解决办法: 1.FTP服务器(这里测试的环境是XP IIS的FTP)的连接数,如果客户端采用多线程访问FTP,可能会 421错误。需要查看连接FTP的Java代码,FTP连接是否已经正常释放掉了,可以考虑将ftp服务端的最大链接数设置大一些。 2.设置的连接超时和数据传输超时值太小。 例如,设置为60秒:
ftpClient.setSocketTimeout(60*000); //设置传输超时时间为60秒
ftpClient.setConnectTimeout(60*000); //连接超时为60秒
apache的默认是-1,即永不超时。如果你没有显式设置超时值,缺省值为-1。
3.有可能是服务器自动断开连接。这种情况需要在程序中使用ftp操作的地方实例化ftpClient,使用过后及时disconnect掉,下次使用再实例化一个ftpClient。其中disconnect建议在try块的finally中使用(防止logout异常而不执行disconnect)。

希望本站内容对您有点用处,有什么疑问或建议请在后面留言评论
转载请注明作者(RobinChia)和出处 It so life ,请勿用于任何商业用途