我有一个出站和入站JMS组件,每当消息通过它时,我会自动丢失所有标头属性,因此基本上只发送消息有效负载。
你们建议我做什么?通过消息将变量作为JMS属性发送?
感谢。
答案 0 :(得分:2)
当消息通过端点时,所有入站属性和调用变量都将丢失。仅携带Outbound属性和Session变量。
所有出站属性都将作为接收端的入站属性提供。
答案 1 :(得分:2)
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
个变量仅限于流程中。