处理由消息驱动的入站通道适配器上的消息转换器引起的异常

时间:2015-04-30 13:05:07

标签: java spring-integration spring-jms

在下面的配置中,我有message-driven-channel-adapter message-converter,因此使用转换的有效内容调用service-activator

<int-jms:message-driven-channel-adapter id="myConsumerChannelAdapter" connection-factory="connectionFactory"
                                        destination="input_queue" channel="input_channel" error-channel="errorChannel"
                                        message-converter="messageConverter" header-mapper="jmsHeaderMapper" acknowledge="client" max-concurrent-consumers="10"/>

<int:service-activator input-channel="input_channel" output-channel="output_enricher_channel" ref="MyConsumer"/>

如果MyConsumer引发异常,则会将其发送给errorChannel。到目前为止,它按预期工作。 但是当消息转换器抛出类似MessageConversionException的异常时,它不会发送到errorChannel。如果我记录由消息转换器引起的异常,我得到:

AbstractMessageListenerContainer.invokeErrorHandler(875) | Execution of JMS message listener failed, and no ErrorHandler has been set.

但是如何将ErrorHandler分配给我的频道适配器或将这些例外发送到errorChannel

1 个答案:

答案 0 :(得分:0)

这将在即将发布的4.2版本中提供。

https://jira.spring.io/browse/INT-3670

Commit here

我提出JIRA的stackoverflow question有一种(有点)解决方法,但它有点笨拙。

您可以尝试4.2.0.BUILD-SNAPSHOT进行测试;在接下来的几周内将会有一个里程碑,但最终版本将在夏季结束前计划。