我得到了一个出站和入站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
变量都限制在流中。
当消息通过终结点时,所有入站属性和调用变量都将丢失。仅随身携带出站属性和会话变量。
所有出站属性都将作为接收端的入站属性提供。