在消息发送后立即检索 JMS Headers,而不使用消息
Retrieve JMS Headers right after the message is sent without consuming the message
如何在发送消息但不使用消息后检索 JMS 消息 headers?
这是我的消息发送码
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;
});
消息 headers 仅在消息发布到 queue 后生成,所以在使用 MessagePostProcessor 时是否有检索 JMS 消息 headers 的简单方法?
在消息真正发送之前,您无法获得JmsMessageID
header; post 处理器只允许您在发送之前修改转换后的消息。
但是,您的第二个 link 应该可以正常工作,因为它保存了对您稍后可以访问的消息的引用。
编辑
已确认:
@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
如何在发送消息但不使用消息后检索 JMS 消息 headers?
这是我的消息发送码
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;
});
消息 headers 仅在消息发布到 queue 后生成,所以在使用 MessagePostProcessor 时是否有检索 JMS 消息 headers 的简单方法?
在消息真正发送之前,您无法获得JmsMessageID
header; post 处理器只允许您在发送之前修改转换后的消息。
但是,您的第二个 link 应该可以正常工作,因为它保存了对您稍后可以访问的消息的引用。
编辑
已确认:
@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