0

リモートの場所に文字列 (長いテキスト ドキュメント) を FTP 送信する Java ピースがあります。すべてが機能しているように見えますが、ftp.storeFile(a,b) が呼び出されると非常に長いハング タイムが発生します。これにより、replyCode 425 が返されます。myData.txt がリモート宛先内に表示されているのは奇妙ですが、空白です。入力ストリームをブロックする何かがあるに違いありませんか? 問題が何であるかを知っている人はいますか?

Java コード:

public void doFTP(){      
       FTPClient ftp = new FTPClient();
       FTPClientConfig config = new FTPClientConfig();
       ftp.configure(config);
       boolean error = false;
       try {
         int reply;
         String server = "example.com";
         ftp.connect(server);
         ftp.login(username, password);
         reply = ftp.getReplyCode();
         if(!FTPReply.isPositiveCompletion(reply)) {
           ftp.disconnect(); 
         } 
         InputStream is = new ByteArrayInputStream(myString.getBytes()); //String
         ftp.setFileType(ftp.BINARY_FILE_TYPE, ftp.BINARY_FILE_TYPE);
         ftp.setFileTransferMode(ftp.BINARY_FILE_TYPE);
         Boolean test = ftp.storeFile("myData.txt", is);  //FTP store here
         System.out.println(test);
         reply = ftp.getReplyCode();
         System.out.println(reply);
         is.close();
         ftp.logout();
       } catch(IOException e) {
       // ... not important
       } finally {
       // ... not important
       }
 }
4

2 に答える 2

0

問題が見つかりました。次のように切り替える必要があります。

ftp.enterLocalPassiveMode();

誰かが説明したいのであれば、なぜこれを行う必要があるのか​​ 、まだよくわかりません。

于 2013-08-13T20:29:50.287 に答える