У меня есть регистратор базы данных myDatabaseLogger
, который ничего не делает в errorChannel
канале. Команда System.out.println
работает в канале errorChannel
.
Мой регистратор базы данных myDatabaseLogger
работает в других потоках.
Как заставить мой регистратор базы данных myDatabaseLogger
работать в errorChannel
канале?
Вот мой код:
@Autowired
@Qualifier("errorChannel")
private PublishSubscribeChannel errorChannel;
@Bean
public IntegrationFlow errorHandlingFlow() {
return IntegrationFlows
.from(errorChannel)
.handle(myDatabaseLogger, "log")
.handle(message -> System.out
.println("The error happened:" + ((MessagingException) message.getPayload()).getMessage()))
.get();
}
Редактировать:
Извините за задержку, только что приехал из отпуска.
Класс myDatabaseLogger
- это простой класс Java, который записывает в базу данных с репозиторием, который расширяет org.springframework.data.repository.CrudRepository
. В методе errorHandlingFlow
в базу данных не записываются никакие строки.
Позже я воспользуюсь ведением журнала DEBUG
и попытаюсь изучить это подробнее.
from(errorChannel)
? Включите ведение журнала DEBUG и наблюдайте за потоком сообщений. - person Gary Russell   schedule 15.02.2019myDatabaseLogger
. А что это значит для твоего ничего не делает? Чего вы ожидаете от этого? Это полностью ваш собственный компонент, и ваш вопрос действительно должен начинаться с него. В противном случае мы не сможем вам помочь. Спасибо за понимание. - person Artem Bilan   schedule 15.02.2019