【问题标题】:How to remove all the properties (INVOCATION/INBOUND/OUTBOUND/SESSION) in a specific scope in mule如何在mule中删除特定范围内的所有属性(INVOCATION/INBOUND/OUTBOUND/SESSION)
【发布时间】:2017-12-03 16:04:23
【问题描述】:

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

我确实看过 <remove-property><message-properties-transformer>,但它们仅适用于特定属性(而非全部)。

【问题讨论】:

    标签: mule transformer


    【解决方案1】:

    你可以在 Groovy Transformer 中做到这一点:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 试过了,效果很好。它实际上删除了 OUTBOUND 范围中存在的所有属性。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多