Как удалить все свойства (INVOCATION/INBOUND/OUTBOUND/SESSION) в определенной области в муле

У меня возникла проблема, когда мое сообщение о кролике mq выдает ошибку, и оно не говорит мне, в чем основная причина сбоя ввода. Глядя на stackoverflow, я вижу, что моя проблема идентична той, о которой сообщалось здесь - сохранить сообщение в rabbitmq от мула - насколько это возможно. Теперь я пытаюсь выяснить, есть ли способ удалить все свойства, присутствующие в сообщении, или удаление может быть выполнено для каждой области (например, INVOCATION/INBOUND/OUTBOUND/SESSION). Причина в том, что я не знаю, какое свойство, если вообще, вызывает это.

Я просмотрел <remove-property> и <message-properties-transformer>, но они работают только с определенным свойством (и не со всеми).


person MemeMe    schedule 29.06.2017    source источник


Ответы (2)


Вы уверены, что <remove-property> работает с определенными свойствами только? я помню, как использовал этот преобразователь с подстановочным знаком, чтобы добиться чего-то похожего на то, что вы пытаетесь сделать:

<remove-property propertyName="*" doc:name="Property"/>
person Yevgeniy    schedule 30.06.2017
comment
Попробовал это, и это сработало. Он фактически удалил все свойства, которые присутствовали в области OUTBOUND. - person MemeMe; 30.06.2017

Вы можете сделать это внутри Groovy Transformer:

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

Я бы рассматривал области OUTBOUND и SESSION, так как другие области не должны распространяться через транспортную границу.

person Clinton Murdoch    schedule 29.06.2017