java - Spring JMS : Set ErrorHandler for @JmsListener annotated method

标签 java spring spring-boot jms spring-jms

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

最佳答案

当使用像@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

关于java - Spring JMS : Set ErrorHandler for @JmsListener annotated method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40654586/

相关文章:

java - 在 doFilter 方法中获取 IllegalStateException

java - 如何调试Eclipse环境中在本地计算机上的JBoss服务器上运行的Java Web应用程序

java - 如何将 Spring Security .antMatchers() 与多个路径一起使用

java - 为什么我的数组列表第二次打印不正确?

java - Spring 数据源 bean 定义失败

spring - 自定义 Spring 初始化

java - 将响应映射到 DTO 时 spring 中的 RestClientException

java - 如何在 Spring Rest API 中将字节数组作为参数传递

spring-mvc - Spring : Get Registered URL Pattern in Controller from HttpRequest

java.lang.IllegalStateException : When using WebSecurityConfigurerAdapter