2011-07-16 86 views
2

ftpが他のマシンに接続されている間に次の例外が発生しています。FTPクライアントを使用してFTPファイルを使用中にエラーが発生しました

FTPClient ftpClient = new FTPClient(); 
ftpClient.connect("home.abc.com"); 
ftpClient.login("remote", "guesst12"); 
int replyCode = ftpClient.getReplyCode(); 
if(FTPReply.isPositiveCompletion(replyCode)) { 
    System.out.println("Connection proper"); 
} 

if(ftpClient.changeWorkingDirectory("share")) { 
    System.out.println("Directory Change Succesfull"); 
} 
InputStream input = new FileInputStream(new File("H:/testFile.txt")); 
BufferedInputStream inputStrean = new BufferedInputStream(input); 
if(ftpClient.storeFile("testFile.txt", input)) { 
    System.out.println("File Stored Successfully"); 
} 
input.close(); 
inputStrean.close(); 
ftpClient.logout(); 
ftpClient.disconnect(); 

私はラインftpClient.storeFile("testFile.txt", input)で取得上記の例外 - :

org.apache.commons.net.io.CopyStreamException: IOException caught while copying. 
    at org.apache.commons.net.io.Util.copyStream(Util.java:119) 
    at org.apache.commons.net.io.Util.copyStream(Util.java:151) 
    at org.apache.commons.net.io.Util.copyStream(Util.java:162) 
    at org.apache.commons.net.ftp.FTPClient.__storeFile(FTPClient.java:373) 
    at org.apache.commons.net.ftp.FTPClient.storeFile(FTPClient.java:1360) 
    at com.fs.ftp.FTPUsingFTPClientApache.startFTP(FTPUsingFTPClientApache.java:40) 
    at com.fs.ftp.FTPUsingFTPClientApache.main(FTPUsingFTPClientApache.java:17) 

私はFTPのために使用していたコードのようなものです。

何かが見つからないか、正しい方法ではありませんか?

おかげ

答えて

2

例外は、問題の原因となった例外、プリントのスタックトレースを取得するために、そのgetIOException()メソッドを呼び出してキャッチ。それはIOExceptionがコピーを失敗させた原因を教えてくれます。

+0

コード 'ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);の行の1つを追加した後、コードが正しく実行されますが、リモートマシンでは、0KBのファイルが内容なしで作成されます。これは役に立ちます.. –

+2

@ M.J。 - あんまり。あなたは元のものが何であったかを調べるのではなく、問題を変えました。私があなたが見て/提供することを提案した情報は、もっと助けになるものです。 –

+0

もご覧くださいhttp://stackoverflow.com/a/19944565/185022 –

0

一度、あなたは私が解決策の上にサポートしたい

  ftps.setFileType(FTP.BINARY_FILE_TYPE); 
      ftps.enterLocalPassiveMode(); 
      ftps.execPBSZ(0) ; 
      ftps.execPROT("P") ; 
2

パッシブモードや設定ファイルタイプを強制する必要FTPSでtranferedファイル0キロバイト(例えばPDFファイル)に問題がある場合しかし、私は持っていません。まだ十分な評判。 それは私をついに救う!

 ftps.setFileType(FTP.BINARY_FILE_TYPE); 
     ftps.enterLocalPassiveMode(); 
     ftps.execPBSZ(0) ; 
     ftps.execPROT("P") ; 

ところで、私の問題は「転送中に接続がリセットされる」ということです。以下の2つのコマンドは、私にとって重要なコマンドです。 ftps.execPBSZ(0); ftps.execPROT( "P");

関連する問題