【问题标题】:Handle exceptions caused by message-converter on Message Driven Inbound Channel Adapter处理由消息驱动入站通道适配器上的消息转换器引起的异常
【发布时间】:2015-04-30 13:05:07
【问题描述】:

在下面的配置中,我有一个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

【问题讨论】:

    标签: java spring-integration spring-jms


    【解决方案1】:

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

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

    Commit here.

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

    您可以尝试 4.2.0.BUILD-SNAPSHOT 进行测试;在接下来的几周内会有一个里程碑,但最终版本要等到夏季结束时才会发布。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-24
      • 2017-04-29
      • 1970-01-01
      • 2014-01-23
      • 2011-04-29
      • 1970-01-01
      • 1970-01-01
      • 2015-11-15
      相关资源
      最近更新 更多