Fehlerbehandlung im Spring-Integrationsfluss asynchron

Ich habe die folgende Spring Integration-Konfiguration, mit der ich eine Gateway-Methode von MVC Controller aufrufen und den Controller zurückgeben kann, während der Integrationsfluss in einem separaten Thread von sich aus fortgesetzt wird, der den Controller nicht blockiert.

Ich kann jedoch nicht herausfinden, wie mein Fehlerhandler für diesen asynchronen Ablauf funktioniert. Mein Gateway hat einen definierten Fehlerkanal, aber meine Ausnahmen erreichen ihn aus irgendeinem Grund nicht. Stattdessen sehe ich, dassLoggingHandler wird aufgerufen.

@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();
}

Tor

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

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

}

Was muss ich tun, damit meine Ausnahmen im asynchronen Integrationsablauf angezeigt werden, der von meinem Fehlerbehandler verarbeitet wird?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage