2016-12-02 33 views
1

Spring是新增功能,可以在計算如何將sftp出站網關與文件出站網關正確鏈接在一起時使用一些幫助。我想確認文件已被sftp處理過,然後將其移至歸檔位置。春季SFTP和文件出站網關鏈

本質上,我有一個目錄,其中的文件被髮送到sftp'd別的地方。文件被傳輸後,該文件應該被移動到存檔目錄。

每個代碼段獨立工作,但嘗試連接兩個時失敗。我無法使用我通常會回覆的頻道,因爲回覆頻道會確認文件已遠程保存到哪裏,並且.msg會被移至歸檔目錄。

我懷疑訂單沒有做我認爲的事。

目前,該文件將90%的時間移動到歸檔目錄,而不會丟失該文件。

這是可能的,還是我只是吠叫錯了樹?有沒有辦法配置sftp:outbound-gateway下游,還是應該嘗試使用不同的方法?

<!-- 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

嗨加里,非常有幫助。後續處理: 是否可以在值中使用文件名生成器來生成要歸檔的文件的文件名? (新的java.io.File('$ {repository.directory}/$ {archive.dir} /'+ new java.text.SimpleDateFormat(''))( HungryandConfused

+0

不要在註釋中放置代碼/配置;你可以看到它幾乎不可讀;改爲編輯問題。另外,SO不喜歡對答案進行擴展評論,你通常應該要求跟進作爲新問題並參考這個問題。你可以做任何你想做的事情;它是SpEL--參見[Spring Reference](http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/expressions.html)。如果你想做一些比SpEL更復雜的東西,只需在「successChannel」和「failureChannel」下游添加組件。 –