Уважаемый всех, у меня есть проблема с моим кодом. Мой ftp-клиент иногда висит, когда он извлекает файл с помощью «ftpClient.retrieveFileStream()». Любая идея, что я могу сделать? Я использую apache commons FTP client v3.4.Apache FTPClient зависает во время retrieveFileStream
- Я пробовал также с "ftpClient.retrieveFile()", но это не имело никакого значения.
- установки тайм-аут соединения и scoket не помогло
- настройки пассивного режима не помогло
увеличение буфера не помогло
ftpClient = new FTPClient(); ftpClient.setBufferSize(1024 * 1024); ftpClient.setConnectTimeout(10000); ftpClient.connect(serverAddress); ftpClient.login(userName,password); ftpClient.setFileType(FTP.BINARY_FILE_TYPE); ftpClient.enterLocalPassiveMode(); ftpClient.setSoTimeout(10000); log("retriving file " + remoteFilePath + "..."); OutputStream output = new FileOutputStream(localFilePath); InputStream inputStream = ftpClient.retrieveFileStream(remoteFilePath); // here it is sometimes hanging. try { IOUtils.copy(inputStream, output); output.flush(); } finally { IOUtils.closeQuietly(output); IOUtils.closeQuietly(inputStream); ftpClient.completePendingCommand(); }
последнее сообщение я получить смотрят, как правило, например:
19:58:21.145 [main] INFO FTPDAO: retrieving file /Modell/5250/Artikel/25777/lg_keh68bgh_1.jpg...
19:58:21.145 [main] INFO Log4JFTPCommandListener - >> PASV
19:58:21.462 [main] INFO Log4JFTPCommandListener - << 227 Entering Passive Mode (195,216,65,165,168,240)
19:58:21.476 [main] INFO Log4JFTPCommandListener - >> RETR /Modell/5250/Artikel /25777/lg_keh68bgh_1.jpg
19:58:21.490 [main] INFO Log4JFTPCommandListener - << 150 Connection accepted
Когда я приостанавливаю Программа с помощью отладчика, то он выглядит, что висит на
java.net.SocketInputStream.socketRead0(FileDescriptor, byte[], int, int, int)
java.net.SocketInputStream.socketRead(FileDescriptor, byte[], int, int, int) line: 116
java.net.SocketInputStream.read(byte[], int, int, int) line: 170
java.net.SocketInputStream.read(byte[], int, int) line: 141
относительно Марк