检测或阻止Commons Net FTPClient在读取时阻止

时间:2009-11-16 10:42:40

标签: java ftp ftp-client apache-commons-net

我正在使用Commons Net FTPClient类定期轮询ftp站点并尝试下载文件。在尝试从网站上读取时,线程偶尔会无限期地阻塞,我想知道是否有其他人遇到过这个问题并且可以提供任何解决方法?

我正在使用FTPClient的{​​{1}}方法来获取InputStream的句柄,然后我尝试从中读取。下面是被阻塞线程的部分堆栈跟踪。

retrieveFileStream(String)

2 个答案:

答案 0 :(得分:0)

java.io是阻塞的,你需要使用java.nio包。从未在java.nio中使用过ftp,但是假设它必须工作,因为http可以使用java.nio。

此致

答案 1 :(得分:0)

我最终在这里使用的kludge是安排一个任务,如果FTP操作花费的时间超过X秒,则发出警报。我确实在Sourceforge上找到javanioftp,但在我的情况下,它并不保证切换客户端的开发开销。