【问题标题】:Spring SFTP & file outbound gateway chainSpring SFTP 和文件出站网关链
【发布时间】:2016-12-02 23:42:53
【问题描述】:

是 Spring 的新手,可以使用一些帮助来弄清楚如何正确地将 sftp 出站网关与文件出站网关链接在一起。我想确认一个文件已经 sftp'ed,然后将它移动到存档位置。

基本上,我有一个目录,文件被发送到其他地方进行 sftp 处理。在文件被传输之后,文件应该被移动到存档目录。

每个代码段独立工作,但当我尝试连接两者时失败。我无法正常使用回复通道,因为回复通道确认文件已远程保存到何处,并且 .msg 已移至存档目录。

我怀疑订单并没有像我想的那样做。

目前,文件在 90% 的时间里移动到存档目录,而不是对文件进行 sftping。

这可能吗,还是我只是在吠叫错误的树?有没有办法配置 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--> 

【问题讨论】:

    标签: spring spring-integration


    【解决方案1】:

    请参阅retry-and-more sample,尤其是其中的Expression Evaluating Advice Demo。它涵盖了您的确切用例。

    【讨论】:

    • 嗨,加里,非常有帮助。追问:是否可以在value中使用文件名生成器来生成要归档的文件的文件名? ` (12
    • 不要将代码/配置放在 cmets 中;如您所见,它几乎不可读;改为编辑问题。此外,SO 不喜欢扩展 cmets 的答案,您通常应该将后续问题作为新问题提出并参考这个问题。你可以做任何你想做的事;这是 SpEL - 请参阅 Spring Reference。如果你想做一些比 SpEL 更复杂的事情,只需在 successChannelfailureChannel 的下游添加组件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-11
    相关资源
    最近更新 更多