現象:
在springboot的定時器輪詢去下載ftp文件時,報以下錯誤:
org.apache.commons.net.ftp.FTPConnectionClosedException: FTP response 421 received. Server closed connection.
at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:367)
at org.apache.commons.net.ftp.FTP.__getReply(FTP.java:294)
at org.apache.commons.net.ftp.FTP._connectAction_(FTP.java:400)
at org.apache.commons.net.ftp.FTPClient._connectAction_(FTPClient.java:924)
原因分析:
1.Connection closed without indication.//FTP服務器服務有故障,或是是網絡問題。
2. FTP response 421 received. Server closed connection.//錯誤原因就是FTP服務器端連接數滿了
故得知是因為原因2造成ftp的連接數滿了,又查看vsftp.log得到:too many sessions for this address
證實了就是連接數滿造成。
解決方案:
將FTPClient.connect();
改成:
if(!FTPClient.isConnected()){
FTPClient.connect();
}
故此解決。希望能幫到大家。