私のJavaメソッドは、SFTPを介してリモートサーバーに接続し、テキストファイルに文字列を書き込んでいます。
String messageText = "my very long Text";
ChannelSftp channel = (com.jcraft.jsch.ChannelSftp) session.openChannel("sftp");
channel.connect();
DataOutputStream out = new DataOutputStream(channel.put(filename));
out.writeBytes(messageText);
messageTextをファイルに書き込んでいる間、メソッドは正確に4355Bytesを書き込んだ後、ほとんどの場合クラッシュします。つまり、テキストファイルは、特定の文字数/バイト数に達するまで書き込まれ、その後停止しますが、メソッドが実行されるたびにこれが発生するわけではありません。例外はスローされませんが、このメソッドを含むSpringワークフローはこの時点でクラッシュしています。
メソッドを含むJavaクラスはjarにパックされ、WindowsServerのOSGI内で実行されます。リモートサーバーはUnixベースです。
何か提案をいただければ幸いです。
更新:mhanによって提案されたように、私はバッファーを使用しましたが、問題は解決したようです:
BufferedOutputStream out = new BufferedOutputStream(channel.put(filename + "_"));
out.write(messageText.getBytes());