Int:Splitter不向通道发送消息以调用它们

时间:2017-10-16 20:12:51

标签: spring-integration

我正在尝试从int-file发送消息:inbound-channel-adapter到int-ftp:outbound-channel-adapter用于将文件移动到远程目录,而int-ftp:outbound-gateway用于删除远程目录中的文件。 / p>

现在int-file:inbound-channel-adapter轮询并发送消息到int-ftp:outbound-channel-adapter,当它轮询第二次发送消息到int-ftp:outbound-gateway。

通过使用int:splitter我仍然可以接收单个文件的单个消息,并且只有一个通道正在调用。我想将每个民意调查消息发送到两个频道。

示例如下:

现在正在工作:

  1. 首次轮询将消息发送到int-ftp:outbound-channel-adapter
  2. 第二次轮询将消息发送到int-ftp:outbound-gateway
  3. 第三次轮询将消息发送到int-ftp:outbound-channel-adapter
  4. 第四次轮询将消息发送到int-ftp:outbound-gateway
  5. 希望实现

    1.第一次轮询向int-ftp发送消息:outbound-channel-adapter和int-ftp:outbound-gateway 2.第二次轮询向int-ftp发送消息:outbound-channel-adapter和int-ftp:outbound-gateway

    提前致谢

    <int-file:inbound-channel-adapter id="inErrorINPRm"
                                    channel="errorRm" 
                                    directory="in/error"
                                    >
        <int:poller fixed-rate="5000" />
    </int-file:inbound-channel-adapter>
    
    <int:channel id="errorRm"></int:channel>
    <int:channel id="ErrorRmMv"></int:channel>
    <int:channel id="ftpINPfromError"></int:channel>
    
    <int:splitter id="splitter" input-channel="errorRm" output-channel="ErrorRmMv"/>
    
    <int-ftp:outbound-channel-adapter id="ftpError"
                                    channel="ErrorRmMv" 
                                    session-factory="ClientFactory"
                                    auto-create-directory="true"
                                    remote-directory="in/error"
                                    >
    </int-ftp:outbound-channel-adapter>
    
    <int:header-enricher id="header-enricher-error" input-channel="ErrorRmMv" output-channel="ftpINPfromError">
        <int:header name="file_remoteDirectory" value="in/working"/>
    
    </int:header-enricher>
    
    <int-ftp:outbound-gateway id="gatewayRmfromError"
                              session-factory="ClientFactory"
                              expression="file_remoteDirectory"
                              request-channel="ftpINPfromError" 
                              command="rm" 
                              >
    </int-ftp:outbound-gateway>
    

1 个答案:

答案 0 :(得分:0)

拆分器无需拆分 - 有效负载已经是单个File

分割器用于将列表拆分为每个列表元素的消息。

您需要为适配器创建输入通道,并且标题更加丰富<int:publish-subscribe-channel/> - 您可以将order="1"添加到适配器并将order="2"添加到更丰富的内容,以清除他们被称为的顺序。