문제

나는 Commons Net을 사용하고 있습니다 FTPClient FTP 사이트를 정기적으로 설문 조사하고 파일을 다운로드하려고 시도합니다. 때때로 사이트에서 읽으려고 할 때 스레드가 무기한 차단되고 있으며 다른 사람 이이 문제에 직면하여 해결 방법을 제공 할 수 있는지 궁금했습니다.

사용 중입니다 FTPClient'에스 retrieveFileStream(String) 메소드 입력 스트림을 처리 한 다음 읽으려고합니다. 아래는 차단 된 스레드의 부분 스택 추적입니다.

"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)
도움이 되었습니까?

해결책 2

여기서 사용한 Kludge는 FTP 작업이 x 초 이상이 걸렸을 때 경고를 제기하는 작업을 예약하는 것이 었습니다. 나는 실제로 찾았다 Javanioftp Sourceforge에서는 내 상황에서는 클라이언트를 전환하는 데있어 개발 간접비를 보증하지 않습니다.

다른 팁

java.io가 차단되고 있으며 Java.nio 패키지를 사용해야합니다. java.nio와 함께 FTP를 사용한 적이 없지만 HTTP가 Java.nio와 함께 작동 할 수 있기 때문에 작동해야한다고 가정합니다.

문안 인사

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top