Обработка ошибок в асинхронном потоке интеграции Spring

У меня есть следующая конфигурация Spring Integration, которая позволяет мне вызывать метод шлюза из MVC Controller и разрешать возврат контроллера, в то время как процесс интеграции будет продолжаться сам по себе в отдельном потоке, который не блокирует контроллер.

Однако я не могу понять, как заставить мой обработчик ошибок работать для этого асинхронного потока. В моем шлюзе определен канал ошибки, но мои исключения по какой-то причине не достигают его. Вместо этого я вижу, чтоLoggingHandler вызывается.

@Bean
IntegrationFlow mainInteractiveFlow() {
    return IntegrationFlows.from(
            MessageChannels.executor("input", executor))
            .split()
            .channel(MessageChannels.executor(executor))
            .transform(transformer)
            .handle(genericMessageHandler, "validate")
            .handle(genericMessageHandler, "checkSubscription")
            .handle(interactiveMessageService, "handle")
            .<Task, String>route(p -> p.getKind().name(),
                    m -> m.channelMapping(TaskKind.ABC.name(), "attachInteractiveChannel"))
            .get();
}

@Bean
IntegrationFlow attachInteractiveChannelFlow() {
    return IntegrationFlows.from(
            MessageChannels.direct("attachInteractiveChannel"))
            .handle(issueRouterService)
            .get();
}

@Bean
IntegrationFlow interactiveExceptionChannelFlow() {
    return IntegrationFlows.from(interactiveExceptionChannel())
            .handle(errorHandler, "handleErrorMessage")
            .get();
}

@Bean
MessageChannel interactiveExceptionChannel() {
    return MessageChannels.direct("interactiveExceptionChannel").get();
}

Шлюз:

@MessagingGateway(errorChannel = "interactiveExceptionChannel")
public interface InteractiveSlackGW {

    @Gateway(requestChannel = "input")
    void interactiveMessage(Collection<Request> messages);

}

Что я должен сделать, чтобы мои исключения происходили в потоке асинхронной интеграции, обрабатываемом моим обработчиком ошибок?

Ответы на вопрос(1)

Ваш ответ на вопрос