我尝试使用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
有人能给我建议吗?
暂无答案!
目前还没有任何答案,快来回答吧!