【问题标题】:Spring JMS : Set ErrorHandler for @JmsListener annotated methodSpring JMS:为@JmsListener注解的方法设置ErrorHandler
【发布时间】:2017-03-31 23:26:36
【问题描述】:

我正在使用@JmsListener 注释方法监听JMS 消息,如下所示。

@JmsListener(destination="exampleQueue")  
public void fetch(@Payload String message){  
    process(message);  
}

当这个方法执行导致异常时,我得到一个警告日志

Execution of JMS message listener failed, and no ErrorHandler has been set.

如何设置ErrorHandler 来处理此案。我正在使用 spring boot 1.3.3.RELEASE

【问题讨论】:

  • 谢谢@sarahTheButterFly。通过在提供的链接中参考 Kuchi 答案得到解决方案。我已经调整了答案以适应我的情况。我在下面发布我的答案

标签: java spring spring-boot jms spring-jms


【解决方案1】:

在使用 @EnableJms@JmsListener 等注解来处理 Spring JMS 时,可以像这样设置 ErrorHandler

@Bean
public DefaultJmsListenerContainerFactory jmsListenerContainerFactory(ConnectionFactory connectionFactory, ExampleErrorHandler errorHandler) {
    DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
    factory.setConnectionFactory(connectionFactory);
    factory.setErrorHandler(errorHandler);
    return factory;
}

@Service
public class ExampleErrorHandler implements ErrorHandler{   
    @Override
    public void handleError(Throwable t) {
        //handle exception here
    }
}

更多详情请点击此处:Annotation-driven listener endpoints

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-24
    • 1970-01-01
    • 2020-11-25
    • 1970-01-01
    • 2013-09-24
    • 2014-11-12
    • 2012-02-13
    • 1970-01-01
    相关资源
    最近更新 更多