Для чтения файлов Источник сообщения Входящий адаптер и преобразователь с аннотациями настроены следующим образом:
@Bean
@InboundChannelAdapter(autoStartup = "false", value = "incomingchannel", poller = @Poller("custompoller"))
public MessageSource<File> fileReadingMessageSource() {
}
@Transformer(inputChannel = "incomingchannel", outputChannel = "jobLaunchChannel")
public JobLaunchRequest toRequest(Message<File> message) throws Exception {
}
Теперь я хочу изменить преобразователь, чтобы он ссылался на канал ответа исходящего шлюза, т.е. который перемещает файлы из одного каталог в другой каталог, т. е. переместить файл из каталога входящего канала в другой каталог и обработать или преобразовать файл или выполнить некоторые проверки
<file:outbound-gateway id="mover" request-channel="incomingchannel" reply-channel="newdirectory" directory="<<path to new directory file to be moved" delete-source-files="true"/>
Кто-нибудь преобразовал конфигурацию выше XML в конфигурации аннотаций или какие-либо идеи?
После настройки аннотаций мне нужно будет изменить входной канал трансформатора, чтобы он ссылался на новый канал директории, т.е. который является каналом ответа шлюза обмена сообщениями ...
Заранее благодарен за любую помощь и предложения относительно this
--- Обновление 1 после проверки фрагмента, предоставленного в ссылке Артемом
@Bean
@ServiceActivator(inputChannel = "incomingchannel")
public MessageHandler fileWritingMessageHandler() {
FileWritingMessageHandler handler = new FileWritingMessageHandler(new File(newdirectorypath));
handler.setFileExistsMode(FileExistsMode.APPEND);
handler.setDeleteSourceFiles(true);
return handler;
}
@MessagingGateway(defaultRequestChannel = "incomingchannel", defaultReplyChannel = "newdirectorychannel")
public interface MyGateway {
void writeToFile(@Header(FileHeaders.FILENAME) String fileName, @Header(FileHeaders.FILENAME) File directory,
String data);
}
Но есть две проблемы
Входящие Адаптер пытается опрашивать каталог также как файл (используется сканер рекурсивных каталогов) - Как обеспечить, чтобы каталог не опрашивался как файл
Вложенное исключение org.springframework.messaging.core.DestinationResolutionException: no output-channel or replyChannel header available, failedMessage=GenericMessage [payload=C