一尘不染

Spring JMS:为@JmsListener注释方法设置ErrorHandler

spring-boot

我正在使用带@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


阅读 2832

收藏
2020-05-30

共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
    }
}

此处提供更多详细信息:注释驱动的侦听器端点

2020-05-30