这必须是一个常见的功能,但我似乎无法找到它。我有一个类似的流程;
<inbound-endpoint.../>
<collection-splitter.../>
<custom component.../>
...
如果自定义组件收到我想要丢弃但没有进一步操作的消息,它是如何完成的?我不想中止处理集合中剩余的元素,只需要处理一个项目。
现在,我让组件返回null并使用有效负载类型过滤器跟随它,但这看起来很笨拙。
答案 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>