当Mule消息通过入站JMS组件传递时,删除标题属性?

时间:2013-10-04 14:57:45

标签: jms activemq mule

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

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

感谢。

2 个答案:

答案 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个变量仅限于流程中。