Domanda

Sto utilizzando la classe di Commons FTPClient netto per interrogare periodicamente un sito FTP e tentare di scaricare un file. Di tanto in tanto il filo sta bloccando a tempo indeterminato quando si cerca di leggere dal sito e mi chiedevo se qualcun altro avesse incontrato questo problema e potrebbe offrire alcuna soluzione alternativa?

Sto usando il metodo FTPClient di retrieveFileStream(String) per ottenere un handle a un InputStream, che ho poi tentativo di leggere da. Qui di seguito è una traccia di stack parziale del filo bloccato.

"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)
È stato utile?

Soluzione 2

Il kludge ho finito per usare qui è stato quello di pianificare un'attività di sollevare un avviso se l'operazione ha richiesto più tempo FTP X secondi. In effetti ho trovato javanioftp su Sourceforge ma nella mia situazione non garantisce l'overhead di sviluppo nel passaggio clienti.

Altri suggerimenti

java.io sta bloccando, è necessario utilizzare il pacchetto java.nio. Mai usato FTP java.nio, ma suppongo che deve lavorare perché http può lavorare con java.nio.

Saluti

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top