如何在@JmsListener 使用的 Spring 引导中访问活动的 JMS Connection/Session
How to acces to the active JMS Connection/Session in Spring Boot that @JmsListener uses
我正在尝试恢复由于无法到达目标而发送回 ActiveMQ 队列的消息。我正在避免重新交付政策,因为它不符合我的要求。我需要使用 session.recover() 在我的应用程序中准确地恢复这些消息。
我目前正在为 spring 启动使用接近默认的 jms 配置,该配置允许使用 @JmsListener 注释。但是我找不到一种方法来获取此注释使用的活动 jms 会话的句柄?
只需要给监听器添加一个Session
参数...
@SpringBootApplication
public class So55038881Application {
public static void main(String[] args) {
SpringApplication.run(So55038881Application.class, args);
}
@JmsListener(destination = "so55038881")
public void listen(String in, Session session) {
System.out.println(in + ":" + session);
}
@Bean
public ApplicationRunner runner(JmsTemplate template) {
return args -> template.convertAndSend("so55038881", "foo");
}
}
和
foo:Cached JMS Session: ActiveMQSession {id=ID:host.local-52659-1551967879238-4:1:1,started=true} java.lang.Object@5bad3a2d
我正在尝试恢复由于无法到达目标而发送回 ActiveMQ 队列的消息。我正在避免重新交付政策,因为它不符合我的要求。我需要使用 session.recover() 在我的应用程序中准确地恢复这些消息。
我目前正在为 spring 启动使用接近默认的 jms 配置,该配置允许使用 @JmsListener 注释。但是我找不到一种方法来获取此注释使用的活动 jms 会话的句柄?
只需要给监听器添加一个Session
参数...
@SpringBootApplication
public class So55038881Application {
public static void main(String[] args) {
SpringApplication.run(So55038881Application.class, args);
}
@JmsListener(destination = "so55038881")
public void listen(String in, Session session) {
System.out.println(in + ":" + session);
}
@Bean
public ApplicationRunner runner(JmsTemplate template) {
return args -> template.convertAndSend("so55038881", "foo");
}
}
和
foo:Cached JMS Session: ActiveMQSession {id=ID:host.local-52659-1551967879238-4:1:1,started=true} java.lang.Object@5bad3a2d