Spring Integration Java DSL: в канале ошибок регистратора базы данных не работает

У меня есть регистратор базы данных 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 и попытаюсь изучить это подробнее.


person Mike    schedule 15.02.2019    source источник
comment
Он все еще не работает после того, как вы добавили from(errorChannel)? Включите ведение журнала DEBUG и наблюдайте за потоком сообщений.   -  person Gary Russell    schedule 15.02.2019
comment
Я пометил ваш вопрос как "Неясно, о чем вы спрашиваете", потому что мы действительно не знаем, что это за myDatabaseLogger. А что это значит для твоего ничего не делает? Чего вы ожидаете от этого? Это полностью ваш собственный компонент, и ваш вопрос действительно должен начинаться с него. В противном случае мы не сможем вам помочь. Спасибо за понимание.   -  person Artem Bilan    schedule 15.02.2019


Ответы (1)


Здесь можно использовать регистратор DEBUG, чтобы найти причину проблемы.

person Mike    schedule 28.02.2019