问题描述
我尝试使用 Spring Boot 和 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
Spring JMS : Set ErrorHandler for @JmsListener annotated method
https://lankydan.dev/2017/06/18/using-jms-in-spring-boot
有人请教一下吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)