在我的应用程序中,我将消息从一个队列移到另一个队列,我想在日志中添加消息ID,我试图弄清楚是否可以在实际处理之前拦截消息,并在MDC字段中设置消息ID,以便我可以在所有队列中跟踪此消息。但到目前为止无法获得成功。是否有解决方案,或者我如何实现。
可以,但是后来我无法访问邮件属性。我可以重写或访问jms组件中某处的任何消息上下文以获取消息属性以进行记录吗?
您可以将原始JMS Message
(或仅消息ID属性)添加为@JmsListener
的附加参数(并使用invocation.getArguments()
访问它,或者可以包装整个侦听器适配器,而不仅仅是包装侦听器bean。使用容器注册表获取对容器的引用,然后单击container.setMessageListener(wrap(container.getMessageListener()));
。