java - 如何在 Spring Boot 中访问 @JmsListener 使用的 Activity JMS 连接/ session

标签 java spring spring-boot jms spring-jms

我正在尝试恢复由于目标无法访问而发送回 ActiveMQ 队列的消息。我正在避免重新交付政策,因为它不符合我的要求。我需要在我的应用程序中使用 session.recover() 在准确的时间恢复这些消息。

我目前正在为 Spring Boot 使用接近默认的 jms 配置,该配置允许使用 @JmsListener 注释。但是我找不到一种方法来获取此注释使用的 Activity jms session 的句柄?

最佳答案

只需向监听器添加一个 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

关于java - 如何在 Spring Boot 中访问 @JmsListener 使用的 Activity JMS 连接/ session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55038881/

相关文章:

java - RESTEasy JSAPI - 更改 apiURL

java - OpenGL2.0教程的示例代码在运行时崩溃

java - 如何将 POJO 列表转换为 XML 元素

java - LDAP JAVA 和用户密码

java - 未捕获的语法错误 : Unexpected token <

java - 如何在同一个Tomcat上部署多个具有外部配置的Spring boot应用程序?

java - 无法自省(introspection)类 [org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration]

在 tomcat 上运行的 Spring boot war,端口号在属性文件中指定

java - 如何调试 ContextLoader - 上下文初始化失败和 BeanCreationException

java - 如何对具有键值对的列表映射进行排序?