2016-12-02 1 views
1

春の新機能で、sftpアウトバウンドゲートウェイをファイルアウトバウンドゲートウェイと正しく連結する方法を理解する上で役立つ可能性があります。私はファイルがsftpされていることを確認し、それをアーカイブの場所に移動したい。春SFTP&ファイルアウトバウンドゲートウェイチェーン

本質的に、私はファイルがどこか別の場所にsftpするために送られるディレクトリを持っています。ファイルは、ファイルが転送された後、アーカイブディレクトリに移動されるはずです。

各コードは独立して動作しますが、2つのコードを接続しようとすると失敗します。返信チャンネルは、ファイルがリモートに保存された場所を確認し、.msgがアーカイブディレクトリに移動されるため、通常は返信チャンネルを使用できません。

私はそれがそうするとは思わないと思う。

現在のところ、ファイルはsftpingせずに、アーカイブディレクトリに90%移動します。

これは可能ですか、間違ったツリーを吠えますか? sftp:outbound-gateway downstreamを設定する方法はありますか?あるいは別の方法を試してみるべきですか?

<!-- START: SFTP files--> 
    <int-file:inbound-channel-adapter 
    directory="file:${sftp.repo}"  
    channel="SFTPchannel" 
    prevent-duplicates="false" 
    ignore-hidden="true" /> 

    <int-sftp:outbound-gateway 
    session-factory="SFTPFactory" 
    request-channel="SFTPchannel" 
    order="1" 
    command="mput" 
    command-options="-1" 
    expression="payload" 
    mode="REPLACE" 
    use-temporary-file-name="false" 
    remote-filename-generator="filenameGenerator" 
    auto-create-directory="false" 
    remote-directory="${sftp.remote.destination}"/> 

    <int-file:outbound-gateway 
    request-channel="SFTPchannel" 
    order="2" 
    directory-expression="'${repository.directory}/'+new java.text.SimpleDateFormat('yyyyMMdd').format(new java.util.Date())" 
    mode="REPLACE" 
    auto-create-directory="true" 
    filename-generator="filenameGenerator" 
    delete-source-files="true" 
    reply-channel="nullChannel" /> 
<!-- END: SFTP files--> 

答えて

1

retry-and-more sampleを参照し、その中に特にExpression Evaluating Advice Demo。あなたの正確なユースケースをカバーしています。

+0

こんにちはゲイリー、非常に便利です。フォローアップ: 値にファイル名ジェネレータを使用して、アーカイブするファイルのファイル名を生成することはできますか? $ {archive.dir}/'+ new java.text.SimpleDateFormat(' $ {repository.directory}/$ {archive.dir} ') '12' – HungryandConfused

+0

コメントにcode/configを入れないでください。あなたが見ることができるように、それは事実上判読できません。代わりに質問を編集してください。また、SOは回答に関するコメントを好きではありません。一般的に、新しい質問としてフォローアップを依頼し、この質問を参照する必要があります。あなたは何でもできます。それはSpELです - [Spring Reference](http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/expressions.html)を参照してください。 SpELで可能なより洗練された何かをしたいのであれば、コンポーネントを 'successChannel'と' failureChannel'の下流に追加するだけです。 –