Apache-Commons: получение CopyStreamException: IOException при использовании CopyStreamEvent - PullRequest
2 голосов
/ 15 марта 2011

Я пытаюсь загрузить файл на FTP-сервер, используя apache-commons ' FTPClient . storeFile () работает без ошибок, но вместо того, чтобы его использовать, я хотел создать слушателя, чтобы следить за ходом загрузки.

Когда я запускаю код, он радостноподключается и вызывает uploadFile () - который, в свою очередь, выдает CopyStreamException: IOException .

Я не умею решать, что вызывает исключение, можетэто будет мой объект "слушателя"?

Вот как я это делаю:

/** Upload a file to the server */
public boolean uploadFile (String localFile, String serverFile, CopyStreamAdapter listener ) throws IOException, FTPConnectionClosedException
{
    /*
    FileInputStream in = new FileInputStream(localFile);
    boolean result = storeFile(serverFile, in);
    in.close();
    return result;
    */

    InputStream stO = new BufferedInputStream( this.retrieveFileStream(serverFile), this.getBufferSize());
    OutputStream stD = new FileOutputStream(localFile);

    org.apache.commons.net.io.Util.copyStream(stO, stD, this.getBufferSize(), org.apache.commons.net.io.CopyStreamEvent.UNKNOWN_STREAM_SIZE, listener );
    this.completePendingCommand();

    // if we get this far, it's rainbows all the way down!
    return true ;
}

слушатель:

CopyStreamAdapter listener = new org.apache.commons.net.io.CopyStreamAdapter()
{
    public void bytesTransferred (long totalBytesTransferred, int bytesTransferred, long streamSize)
    {
        // show progress
        System.out.println( "Upload progress: " + bytesTransferred + " of " + totalBytesTransferred ) ;
    }
} ;

f = new ftpClientWrapper() ;   // my class instance.
f.uploadFile(filename, "/public/dropfolder/test/testfile.test" , listener ) ;  // i've validated filename and uploadpath

edit: Это трассировка стека:

Error on FTP upload: org.apache.commons.net.io.CopyStreamException: IOException caught while copying.
org.apache.commons.net.io.CopyStreamException: IOException caught while copying.
    at org.apache.commons.net.io.Util.copyStream(Util.java:129)
    at org.apache.commons.net.io.Util.copyStream(Util.java:173)
    at dk.capsize.ftpapp.ftpClientWrapper.uploadFile(JakartaFtpWrapper.java:105)
    at FTPApp.main(FTPApp.java:63)

Заранее спасибо!

...