如何删除mule中特定范围内的所有属性(INVOCATION / INBOUND / OUTBOUND / SESSION)

时间:2017-06-29 19:52:49

标签: mule transformer

我遇到一个问题,我的兔子mq消息放错了,它没告诉我放置失败的根本原因是什么。看看stackoverflow,我发现我的问题与此处报告的内容相同 - to store a message in rabbitmq from mule - 就异常而言。 现在我试图找出是否有办法删除消息中存在的所有属性,或者是否可以按范围执行删除(即INVOCATION / INBOUND / OUTBOUND / SESSION)。原因是,我不知道哪个属性,如果有的话,是造成这个。

我确实看过<remove-property>&amp; <message-properties-transformer>但他们只在特定属性上工作(并且不是全部)。

2 个答案:

答案 0 :(得分:1)

您确定<remove-property>适用于特定属性 吗?我记得使用带有通配符的变压器来实现类似于你想要做的事情:

<remove-property propertyName="*" doc:name="Property"/>

答案 1 :(得分:0)

你可以在Groovy Transformer中使用它来做到这一点:

import org.mule.api.transport.PropertyScope
message.getPropertyNames(PropertyScope.OUTBOUND).each {p -> message.removeProperty(p, PropertyScope.OUTBOUND)}

我会查看范围OUTBOUND和SESSION,因为其他范围不应该通过传输边界传播。