Spring integration 如何在使用出站通道适配器发送JMSMessageId后获取它?
我使用出站通道适配器发送JMS消息,如下所示:Spring integration 如何在使用出站通道适配器发送JMSMessageId后获取它?,spring-integration,Spring Integration,我使用出站通道适配器发送JMS消息,如下所示: <intjms:outbound-channel-adapter destination-name="MY.QUEUE" connection-factory="myConnectionFactory" channel="mySender"/> 在此之后,我需要知道JMS消息Id。如何获取它 我可以在适配器中提供一种在自定义JmsTemplate中执行此操作的方法,但可能有一种更简单的解决方案来
<intjms:outbound-channel-adapter
destination-name="MY.QUEUE"
connection-factory="myConnectionFactory"
channel="mySender"/>
在此之后,我需要知道JMS消息Id。如何获取它
我可以在适配器中提供一种在自定义JmsTemplate
中执行此操作的方法,但可能有一种更简单的解决方案来解决此问题
我无法使用网关,因为没有响应。您可以将JMS
消息作为Spring集成消息的有效负载
发送到该适配器。并在成功发送后使用其getJMSMessageID()
更新
但这意味着我不能使用JmsTemplate的便利性,必须自己处理javax.jms.Connection和javax.jms.Session才能创建javax.jms.Message,对吗
嗯,没有人禁止您直接使用JmsTemplate
作为常规
的参考。根据目标,
是单向的。所以它真的不打算归还任何东西。你的案子真的需要做点什么。这就是javax.jms.Session
钩子和技巧,用于创建jms消息,以便能够在以后检索其ID
。自定义JmsHeaderMapper
及其fromHeaders()实现的消息访问上方有一个ThreadLocal
孔,但我认为对于这种情况,最好直接使用JmsTemplate
。您可以将JMS消息作为Spring集成消息的有效负载
发送到该适配器。并在成功发送后使用其getJMSMessageID()
更新
但这意味着我不能使用JmsTemplate的便利性,必须自己处理javax.jms.Connection和javax.jms.Session才能创建javax.jms.Message,对吗
嗯,没有人禁止您直接使用JmsTemplate
作为常规
的参考。根据目标,
是单向的。所以它真的不打算归还任何东西。你的案子真的需要做点什么。这就是javax.jms.Session
钩子和技巧,用于创建jms消息,以便能够在以后检索其ID
。自定义JmsHeaderMapper
及其fromHeaders()实现的消息访问上方有一个ThreadLocal
孔,但我认为在这种情况下,最好直接使用JmsTemplate
。但这意味着我不能使用JmsTemplate
的便利性,必须自己处理javax.jms.Connection
和javax.jms.Session
,才能创建javax.jms.Message
,对吗?请,在我的答案中找到更新。但这意味着我不能使用JmsTemplate
的便利性,必须自己处理javax.jms.Connection
和javax.jms.Session
才能创建javax.jms.Message
,对吗?请在我的答案中找到更新。