我有以下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,我无法理解我如何处理这个错误?
谢谢。
我相信Jms.outboundGateway
在那里,因为对方没有给你回复org.springframework.integration.MessageTimeoutException
。
您可以配置MessageTimeoutException
,但默认情况下它是cifResponseQueue
。
你也可以在这个receiveTimeout()
上配置一个5 secs
或RequestHandlerRetryAdvice
来使用ExpressionEvaluatingRequestHandlerAdvice
的Jms.outboundGateway()
以某种特定的方式真正处理这个异常。
请参阅有关此事的文件:advice(...)
UPDATE
另外,正如加里指出的那样,你可以使用ConsumerEndpointSpec
从https://docs.spring.io/spring-integration/docs/current/reference/html/messaging-endpoints-chapter.html#message-handler-advice-chain级别捕获一个例外,并且一些流程订阅了这个频道。