Как зарегистрировать нулевой канал

При весенней загрузке - интеграции используйте фильтр, который будет переименовывать файл, если экземпляр успешно переименует только файл, он должен продолжить поток, иначе он будет передан в нулевой канал.

Хотелось бы записать пустой канал, чтобы увидеть имя файла, который не был успешно переименован.

Пробовал нижеприведенное решение, но при запуске приложения возникает исключение. Можете ли вы предложить решение для достижения этой цели.

<integration:filter input-channel="filesInChannel" expression="headers['file_originalFile'].renameTo(new java.io.File(headers['file_originalFile'].absolutePath + '.lock'))" 
        output-channel="filesHeaderEnricher" discard-channel="nullChannel" throw-exception-on-rejection="false">
</integration:filter> 
<integration:channel id="nullChannel">
  <integration:interceptors>
    <integration:wire-tap channel="logNullChannel"/>
 </integration:interceptors>
</integration:channel>
<integration:logging-channel-adapter id="logNullChannel" level="DEBUG"/>

Исключение, если для нулевого канала добавлен адаптер logging-channel:

  java.lang.IllegalStateException: The bean name 'nullChannel' is reserved.
    at org.springframework.integration.config.DefaultConfiguringBeanFactoryPostProcessor.registerNullChannel(DefaultConfiguringBeanFactoryPostProcessor.java:112) ~[spring-integration-core-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
    at org.springframework.integration.config.DefaultConfiguringBeanFactoryPostProcessor.postProcessBeanFactory(DefaultConfiguringBeanFactoryPostProcessor.java:63) ~[spring-integration-core-5.0.4.RELEASE.jar!/:5.0.4.RELEASE]
    at 
0
0
243
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

nullChannel вообще не может быть перехвачен. Вам необходимо рассмотреть какой-либо другой канал для вашего варианта использования или включить ведение журнала отладки для категории NullChannel:

 if (this.loggingEnabled && this.logger.isDebugEnabled()) {
        this.logger.debug("message sent to null channel: " + message);
    }

Другие вопросы по теме