这必须是一个共同的特征,但我似乎无法找到它。我有这样的流程;
<inbound-endpoint.../>
<collection-splitter.../>
<custom component.../>
...
如果自定义组件收到我想丢弃的消息,没有进一步的操作,它是如何完成的?我不想中止处理集合的其余元素,只是一个项目。
现在,我让组件返回 null 并在其后面加上有效负载类型过滤器,但这似乎很笨拙。
这必须是一个共同的特征,但我似乎无法找到它。我有这样的流程;
<inbound-endpoint.../>
<collection-splitter.../>
<custom component.../>
...
如果自定义组件收到我想丢弃的消息,没有进一步的操作,它是如何完成的?我不想中止处理集合的其余元素,只是一个项目。
现在,我让组件返回 null 并在其后面加上有效负载类型过滤器,但这似乎很笨拙。
在这种情况下,将您的组件转换为拦截器:组件将决定是否转发当前的 Mule 事件以进行下游处理。
为此,您需要实施org.mule.api.interceptor.Interceptor
.
阅读以下内容以获取更多信息: http: //www.mulesoft.org/documentation/display/current/Using+Interceptors#UsingInterceptors-WritingInterceptors
我们应该在 mule 3 流中使用消息过滤器。mule 3 流不支持 muleEventContext 的 setStopFurtherProcessing。
<message-filter doc:name="Message">
<not-filter>
<payload-type-filter expectedType="org.mule.transport.NullPayload"></payload-type-filter>
</not-filter>
</message-filter>