当骡子消息通过入站 JMS 组件传递时, 会删除标头属性



我得到了一个出站和入站JMS组件,每当消息通过它时,我都会自动丢失所有标头属性,因此基本上只发送消息有效负载。

你们建议我做什么? 通过消息将变量作为 JMS 属性发送?

谢谢。

Inbound 属性不会跨传输传播。除非您明确复制它们,否则您将丢失它们。

Outbound属性将被复制,并在向 JMS 队列(或与此相关的任何其他传输)发送出站请求时作为入站属性接收。

当您收到入站请求并且现在的目的是将属性传播到出站终结点时,请显式复制所需的属性,或者执行快捷方式步骤,并在入站终结点之后复制所有属性。

<flow name="flowName">
    <jms:inbound-endpoint queue="queueName" exchange-pattern="one-way" />
    <copy-properties propertyName="*" />
.....
</flow>

这将

<copy-properties propertyName="*" />

将传入的入站属性复制到flowName出站属性。

此外,请确保正确访问属性。

访问入站属性:#[message.inboundProperties['propertyName']]

访问出站属性:#[message.outboundProperties['propertyName']]

Invocation变量都限制在流中。

当消息通过终结点时,所有入站属性和调用变量都将丢失。仅随身携带出站属性和会话变量。

所有出站属性都将作为接收端的入站属性提供。

最新更新