WindowsからUnixサーバーにファイルをSFTPで転送しようとすると、特有の問題が発生します。エラー「スタックトレース」は-
4: Failure
at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.Java:2846)
at com.jcraft.jsch.ChannelSftp.checkStatus(ChannelSftp.Java:2459)
at com.jcraft.jsch.ChannelSftp._sendCLOSE(ChannelSftp.Java:2465)
at com.jcraft.jsch.ChannelSftp._put(ChannelSftp.Java:683)
at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.Java:475)
at com.jcraft.jsch.ChannelSftp.put(ChannelSftp.Java:365)
他のフォーラムでたくさん検索しましたが、根本的な原因を見つけることができませんでした。もう1つ確認しました。ファイル名は、SFTPを実行しようとしていますが、*。XMLに変更すると* .xmlになり、SFTPは「成功」します。非常に奇妙なことに問題を特定できませんでした。 JSch Java APIを使用してこれを試しています。しかし、WinSCPフロントエンドを試しているときに同じ問題が発生しました。
OpenSSH SFTPサーバーがさまざまな理由でコード4(失敗)を詳細を示さずに返すのは一般的です 。
詳細については、 SFTPサーバーログ を確認する必要があります。
私は同じ問題に直面していました。 SFTPサービスが実行されていることを確認してください。そして、それがすでに実行されている場合は、このサービスを再起動することでうまくいくはずです。
私も同じ問題を抱えていました。すべてを試しましたが、タイムアウトを30秒と思っていたものに設定していましたが、実際には30ミリ秒でした。 30000msに変更すると、問題が解決しました。
session.setTimeout(30000);