2013-05-28 3 views
0

Как это можно сделать? Он отлично работает с одним int-файлом: исходящим-канальным адаптером, но я не мог заставить его работать, когда добавляю еще один. Я фактически добавил другой, отдельный набор каналов/адаптеров, но он все еще не работал.Запись в несколько каталогов в адаптере файла интеграции весны

В теге 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"/> 

Ниже приведены каналы, в то время как боб является фактическим автором. Обратите внимание, что эти два канала оба относятся к боба (исх = «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

Если я правильно вас понимаю, вы хотите, чтобы написать полезную нагрузку сообщение для коллекции каталогов одновременно? Для того, чтобы несколько файловых адаптеров прослушивали один и тот же канал, вы должны использовать Опубликовать канал подписки с помощью этого элемента. Для получения дополнительной информации, пожалуйста, см: http://static.springsource.org/spring-integration/reference/html/messaging-channels-section.html#channel-configuration-pubsubchannel

При использовании канала адаптера Outbound в File, вы можете также использовать каталог самовыражение атрибут, который доступен с весны интеграции 2.2. Это дает вам полную поддержку выражения SpEL. Таким образом, каталог, который вы хотите записать, может быть, например, предоставленным заголовком сообщения. Для получения дополнительной информации, пожалуйста, см:

http://static.springsource.org/spring-integration/reference/html/files.html#file-writing-output-directory

+0

Да, Гуннар, вот что я хочу. – Tino

+0

Отлично, он работает! Я использовал канал Publish-Subscribe, а затем использовал его в двух адаптерах Outbound Channel. 'code' ' code' – Tino

Смежные вопросы