spring引导jms错误处理程序不工作

9wbgstp7  于 2021-06-27  发布在  Java
关注(0)|答案(0)|浏览(261)

我尝试使用springboot和jms实现azure服务总线集成
但是错误处理程序没有按预期工作,我收到一个警告
warn 10676---[enercontainer-1]o.s.j.l.defaultmessagelistenercontainer:执行jms消息侦听器失败,未设置任何errorhandler。
和sysout内部错误处理程序在引发异常时未调用。我刚刚试过下面的例子。

@SpringBootApplication
public class So49861714Application {

    public static void main(String[] args) {
        SpringApplication.run(So49861714Application.class, args);
    }

    @Bean
    public ApplicationRunner runner(JmsTemplate template) {
        return args -> template.convertAndSend("foo", "testMessage");
    }

    @Bean
    public DefaultJmsListenerContainerFactory jmsListenerContainerFactory(
            DefaultJmsListenerContainerFactoryConfigurer configurer,
            ConnectionFactory connectionFactory,
            ErrorHandler myErrorHandler) {
        DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
        configurer.configure(factory, connectionFactory);
        factory.setErrorHandler(myErrorHandler);
        return factory;
    }

    @Bean
    public ErrorHandler myErrorHandler() {
        return t -> {
            System.out.println("In error handler");
            t.printStackTrace();
        };
    }

    @JmsListener(destination = "foo")
    public void listen(String in) {
        System.out.println(in);
        throw new RuntimeException("test");
    }

}

参考-
https://www.baeldung.com/spring-jms
springjms:为@jmslistener注解方法设置errorhandler
https://lankydan.dev/2017/06/18/using-jms-in-spring-boot
有人能给我建议吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题