我使用Commons Net ftp类定期轮询FTPClient站点并尝试下载文件。当尝试从站点读取时,线程偶尔会无限期地阻塞,我想知道是否有人遇到过这个问题,可以提供任何解决方法吗?
我使用FTPClient的retrieveFileStream(String)方法来获取一个InputStream的句柄,然后尝试读取它。
"FTP File Poll Thread" prio=10 tid=0x083b0800 nid=0x6324 runnable [0x65b5b000..0x65b5beb0]
java.lang.Thread.State: RUNNABLE
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read(BufferedInputStream.java:237)
- locked <0x5c851928> (a java.io.BufferedInputStream)
at java.io.FilterInputStream.read(FilterInputStream.java:66)
at java.io.PushbackInputStream.read(PushbackInputStream.java:122)
at org.apache.commons.net.io.FromNetASCIIInputStream.__read(FromNetASCIIInputStream.java:75)
at org.apache.commons.net.io.FromNetASCIIInputStream.read(FromNetASCIIInputStream.java:170)
at java.io.FilterInputStream.read(FilterInputStream.java:116)发布于 2009-11-17 16:45:38
我在这里最终使用的杂乱无章是调度一个任务,以便在FTP操作花费的时间超过X秒时发出警报。我确实在Sourceforge上找到了javanioftp,但在我的情况下,它并不保证切换客户端的开发开销。
发布于 2009-11-17 04:04:43
java.io被阻塞,您需要使用java.nio包。从来没有在java.nio中使用过ftp,但假设它一定可以工作,因为java.nio可以与http一起工作。
问候
https://stackoverflow.com/questions/1741378
复制相似问题