Spring集成org.springframework.integration.MessageTimeoutException处理

问题描述 投票:1回答:1

我有以下spring集成流程:

        @Bean
        public IntegrationFlow innerInFlow(@Value("${jms.concurrency:10}") String concurrency) {
            return IntegrationFlows
                    .from(Jms.messageDrivenChannelAdapter(
                            Jms.container(connectionFactory, innerQueue)
                                    .concurrency(concurrency)
                                    .taskExecutor(taskExecutor()).get())
                            .extractPayload(true))
                    .transform(Transformers.deserializer())
                    .route(eventRouter())
                    .get();
        }

路由后

        @Bean
        public IntegrationFlow findPersonClienFlow(FindClientHandler findClientHandler) {
            return IntegrationFlows.from(findPersonClienChannel())
                    .transform(findClientHandler, "queryToFindClientRequest")
                    .handle(Jms.outboundGateway(connectionFactory).requestDestination(cifRequestQueue)
                            .replyDestination(cifResponseQueue).get())
                    .get();
        }

    }

在qazxsw poi我有qazxsw poi,我无法理解我如何处理这个错误?

谢谢。

spring-integration spring-jms spring-integration-dsl
1个回答
0
投票

我相信Jms.outboundGateway在那里,因为对方没有给你回复org.springframework.integration.MessageTimeoutException

您可以配置MessageTimeoutException,但默认情况下它是cifResponseQueue

你也可以在这个receiveTimeout()上配置一个5 secsRequestHandlerRetryAdvice来使用ExpressionEvaluatingRequestHandlerAdviceJms.outboundGateway()以某种特定的方式真正处理这个异常。

请参阅有关此事的文件:advice(...)

UPDATE

另外,正如加里指出的那样,你可以使用ConsumerEndpointSpechttps://docs.spring.io/spring-integration/docs/current/reference/html/messaging-endpoints-chapter.html#message-handler-advice-chain级别捕获一个例外,并且一些流程订阅了这个频道。

© www.soinside.com 2019 - 2024. All rights reserved.