gpt4 book ai didi

spring - 消息发送后立即检索 JMS header 而不消耗消息

转载 作者:行者123 更新时间:2023-12-02 03:42:42 24 4
gpt4 key购买 nike

如何在发送消息后检索 JMS 消息 header 但不使用该消息?

这是我的消息发送代码

jmsTemplate.convertAndSend(que, text, message -> {

LOGGER.info("setting JMS Message header values");
message.setStringProperty(RequestContext.HEADER_ID, id);
// LOGGER.info(message.getJMSMessageId()); -- this gives a null value here
return message;
});

消息头仅在消息发布到队列后生成,因此在使用 MessagePostProcessor 时是否有一种简单的方法来检索 JMS 消息头?

我已引用链接 - herehere但没有太大帮助:(

最佳答案

在消息实际发送之前,您无法获取 JmsMessageID header ;后处理器只允许您在发送转换后的消息之前对其进行修改。

但是,您的第二个链接应该可以正常工作,因为它保存了对消息的引用,您可以稍后访问。

编辑

确认:

@SpringBootApplication
public class So48001045Application {

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

@Bean
public ApplicationRunner runner(JmsTemplate template) {
return args -> {
final AtomicReference<Message> msg = new AtomicReference<>();
template.convertAndSend("foo", "bar", m -> {
msg.set(m);
return m;
});
System.out.println(msg.get().getJMSMessageID());
};
}

}

ID:host.local-61612-1514496441253-4:1:1:1:1

关于spring - 消息发送后立即检索 JMS header 而不消耗消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48001045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com