2011-09-23 44 views
2

我們在AIX上使用commons-net-1.4.1.jar和java5_64。我在FTP服務器上列出文件時遇到以下例外情況。作爲工藝到處跑,每天60次,我得到的錯誤2〜3次,其餘時間運行良好FTP SocketTimeoutException即使使用被動模式

java.net.SocketTimeoutException: Accept timed out 
     at java.net.PlainSocketImpl.socketAccept(Native Method) 
     at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:427) 
     at java.net.ServerSocket.implAccept(ServerSocket.java:466) 
     at java.net.ServerSocket.accept(ServerSocket.java:434) 
     at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:502) 
     at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2488) 

此錯誤是間歇性的。

我在互聯網上找到了一種可能的解決方案,將連接模式從主動模式改爲被動模式,但是這也沒有幫助。

你能否幫助我,我不知道可能是什麼原因。

回答

0

您嘗試列出文件的遠程服務器根本沒有響應...(這是一個相當常見的情況)。或者他們的互聯網連接在此刻關閉,或者您自己的互聯網連接斷開,或者服務器已飽和並拒絕連接,或者可能出現任何情況。

(你正確每個進程成功時關閉到服務器的連接?服務器可以被拒絕,因爲它認爲你已經連接的連接)

+0

謝謝您的回答。是的,服務器連接每次都正常關閉。有兩個進程運行相同的代碼。對於被動模式,只有一個用於間歇性地提供上述問題,其他運行良好。我停止了另一個流程,發現我們現在能夠通過這一步。不過後來在代碼中,當我們試圖列出文件名時,我們再次被吊死。 我們沒有明確指定解析器。沒有明確的解析器,它在早期工作得很好,而且在其他進程中工作正常。 – sumit

+0

我正在接到異常。 java.net.SocketTimeoutException:接受超時 at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:427) at java.net.ServerSocket.implAccept(ServerSocket .java:466) at java.net.ServerSocket.accept(ServerSocket.java:434) at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:502) at org.apache.commons .net.ftp.FTPClient.listNames(FTPClient.java:1959) at org.apache.commons.net.ftp.FTPClient.listNames(FTPClient.java:2006) – sumit

相關問題