如何做到这一点?它适用于一个int文件:outbound-channel-adapter,但是当我添加另一个时,我无法使它工作。我实际上添加了另一组独立的通道/适配器,但它仍然无效。
在int-file:outbound-channel-adapter标记中,实际上有一个“directory”属性,但它只接受一个目录路径。
以下是我尝试的代码:
<int-file:outbound-channel-adapter id="outputDirectory1"
directory="${output.directory1}"
channel="fileWriterChannel1"
filename-generator- expression="headers.get('filename')"
delete-source-files="true"/>
<int-file:outbound-channel-adapter id="outputDirectory2"
directory="${output.directory2}"
channel="fileWriterChannel2"
filename-generator-expression="headers.get('filename')"
delete-source-files="true"/>
下面是频道,而bean是真正的作家。请注意,这两个通道都引用bean(ref =“messageTransformer”):
<int:transformer id="messageToStringTransformer1"
input-channel="messageTypeChannel"
output-channel="fileWriterChannel1"
ref="messageTransformer"
method="write"/>
<int:transformer id="messageToStringTransformer2"
input-channel="messageTypeChannel"
output-channel="fileWriterChannel2"
ref="messageTransformer"
method="write"/>
<bean id="messageTransformer" class="com.message.writer.DefaultMessageWriter"/>
答案 0 :(得分:0)
如果我理解正确,您是否要同时将Message有效负载写入目录集合?为了让多个文件适配器监听同一个频道,您必须使用该元素使用发布订阅频道。有关详细信息,请参阅:http://static.springsource.org/spring-integration/reference/html/messaging-channels-section.html#channel-configuration-pubsubchannel
使用文件出站通道适配器时,您还可以使用自Spring Integration 2.2以来可用的目录表达式属性。它为您提供完整的SpEL表达式支持。因此,您要写入的目录可以是例如提供的消息头。有关详细信息,请参阅: