サーバーの1つでFTPを実行するためにFTPClientを使用しています。ファイルのすべてのリストを取得できますが、それらのファイルを読み取ろうとすると、「接続が閉じられました」、「接続が拒否されました」、「接続がリセットされました」という例外が表示されます。FTPに次のコードを使用しています
FTPClient client = new FTPClient();
client.connect("IpAddress");
client.login("Username", "Password");
client.setRemoteVerificationEnabled(false);
client.enterLocalPassiveMode();
FTPFile[] files = client.listFiles(dirPath);
上記のコードはすべてのファイル名を私に与えており、これらの名前を検索オブジェクトに渡しています。同じ「クライアント」オブジェクトを使用しています
InputStream in = client.retrieveFileStream("filename with path as a string");
try(BufferedReader reader = new BufferedReader(new InputStreamReader(in))) {
while (null != reader && (line = reader.readLine()) != null) {
if (null != line && line.contains(wordToSearch)) {
System.out.println("word Found");
}
}
そのフォルダにはファイルが多すぎます。すべてのファイルを取得できますが、読み取り時に失敗するのはなぜですか。
例外は:
java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
22:57:22,594 INFO Connector:38 - Traversing and Searching Finished......
at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:579)
at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:894)
at org.apache.commons.net.ftp.FTPClient._openDataConnection_(FTPClient.java:759)
at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:3293)
at org.apache.commons.net.ftp.FTPClient.initiateListParsing(FTPClient.java:3271)
at org.apache.commons.net.ftp.FTPClient.listFiles(FTPClient.java:2930)
at com.novigolabs.connectors.FtpConnector.listFiles(FtpConnector.java:44)
at com.novigolabs.connectors.FtpConnector.listFiles(FtpConnector.java:55)
at com.novigolabs.search.Traverse.initiateSearch(Traverse.java:117)
at com.novigolabs.search.Traverse.run(Traverse.java:45)
at java.lang.Thread.run(Thread.java:724)