如何在Mule 3中干净地终止消息处理?

时间:2013-03-04 17:46:30

标签: mule mule-studio

这必须是一个常见的功能,但我似乎无法找到它。我有一个类似的流程;

   <inbound-endpoint.../>
   <collection-splitter.../>
   <custom component.../>
   ...

如果自定义组件收到我想要丢弃但没有进一步操作的消息,它是如何完成的?我不想中止处理集合中剩余的元素,只需要处理一个项目。

现在,我让组件返回null并使用有效负载类型过滤器跟随它,但这看起来很笨拙。

2 个答案:

答案 0 :(得分:2)

在这种情况下,将组件转换为拦截器:组件将决定是否转发当前的Mule事件以进行下游处理。

为此,您需要实施org.mule.api.interceptor.Interceptor

阅读以下内容以获取更多信息:http://www.mulesoft.org/documentation/display/current/Using+Interceptors#UsingInterceptors-WritingInterceptors

答案 1 :(得分:0)

我们应该在mule 3流中使用消息过滤器。 mule 3流不支持setStopFurtherProcessing MuleEventContext。

<message-filter doc:name="Message">
   <not-filter>
      <payload-type-filter expectedType="org.mule.transport.NullPayload"></payload-type-filter>
  </not-filter>
</message-filter>