【问题标题】:Spring Integration - Inbount Channel Adapter sends last file again when it reads a new fileSpring Integration - 入站通道适配器在读取新文件时再次发送最后一个文件
【发布时间】:2015-11-13 14:33:35
【问题描述】:

当入站通道适配器从输入目录读取第二个文件时,我遇到了问题。适配器启动如下流程:适配器 -> 通道 -> 拆分器 -> 通道... -> 数据库。

Splitter 每行读取文件进程,然后将文件复制到另一个目录并删除原始文件。

问题是,适配器对第一个文件按预期工作,但是当它读取第二个文件时,它再次从第一个文件发送消息(第一个文件不再位于输入目录中)。

注意:第一个通道与 ActiveMQ 队列保持一致。本地确认。

配置:

<int-file:inbound-channel-adapter id="filesIn" channel="reinjectionChannel" filename-regex="reinyeccion[0-9]{8}.txt"
    directory="${input.directory.reinyeccion}" prevent-duplicates="true" />

<jms:channel id="reinjectionChannel" queue="reinjectionChannelQueue">
    <jms:interceptors>
        <int:wire-tap channel="reinjectionLoggingChannel"/>
    </jms:interceptors>
</jms:channel>

<int:splitter input-channel="reinjectionChannel" method="split" 
    output-channel="inputChannel" ref="reinjectionSplitterBean" />

<int:channel id="inputChannel" >
    <int:interceptors>
        <int:wire-tap channel="inputLoggingChannel"/>
    </int:interceptors>
</int:channel>

日志:

org.springframework.integration.handler.LoggingHandler   handleMessageInternal  INFO  (BBR) reinjectionLoggingChannel \tmp\concentrador\files\input\reinyeccion20151109.txt
org.springframework.integration.handler.LoggingHandler   handleMessageInternal  INFO  (BBR) reinjectionLoggingChannel \tmp\concentrador\files\input\reinyeccion20151108.txt

感谢您的帮助。

【问题讨论】:

    标签: spring spring-integration


    【解决方案1】:

    我找到了,我需要清除拆分器返回的消息列表。

    【讨论】:

      猜你喜欢
      • 2023-03-12
      • 2014-10-03
      • 1970-01-01
      • 2014-06-29
      • 1970-01-01
      • 2012-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多