Spring Integration sftp mainframe :failed to write file; を確認しました。ネストされた例外は 3: Permission deniedですが、リモート メインフレームにファイルを sftp することはできません。
コマンド ラインを使用して自分のアカウントに sftp する場合、ログイン ディレクトリは /home/users/snoopy になります。
ここから、コマンド「put filename //#12345」を発行すると、ファイルが転送されます。送信ゲートウェイで「//#12345」を指定する方法がわかりません。この同じコマンドを指定するために追加できるいくつかの sftp オプションはありますか? 式に追加されますか?、つまり、expression="payload.filename + ???"
現在のリモート ディレクトリは /home/users/snoopy であるため、問題なくそのディレクトリに配置できますが、//#12345 にはアクセスできません。
remote-directory を /home/users/snoopy//#12345 または /home/users/snoopy/#12345 に設定しようとすると、それらのパスは存在しません
これが私のゲートウェイ構成です:
<sftp outbound-gateway id="sftpOutbound"
session-factory="sftpSessionFactory"
request-channel="sftpOut"
command="put"
expression="payload.filename"
remote-directory="/home/users/snoopy"
remote-filename-generator="fileNameGenerator"
use-temporary-file-name="false"
reply-channel="successChannel"/>
この構成で、ファイルを /home/users/snoopy に送信できます。//#12345 に送信する方法がわかりませんでした。