`
winnie825
  • 浏览: 120192 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Mule ESB的filter

阅读更多

1. filter的作用

    filter指定了能够被service转发(routed)或是进一步被flow所处理的message所需要满足的条件。

 

2. filter分类

    Mule3的用户开发手册中,将filter分为三大类:Standard Filters、Transport and Module Filters、Custom Filters。

 

    2.1 Standard Filters

    结构:

    |-Payload Type Filter

    |-Expression Filter

       |-- XPath Expressions

       |-- JXPath Expressions

       |-- OGNL Expressions

    |-RegEx Filter

    |-Wildcard Filter

    |-Exception Type Filter

    |-Message Property Filter

    |-Logic Filters

       |-- And Filter

       |-- Or Filter

       |-- Not Filter

 

    2.1.1 Payload Type Filter

        检查payload对象的类型,如:

        <payload-type-filter expectedType="java.lang.String">

 

    2.1.2 Expression Filter

        使用evaluator属性指定expression evaluator——以下中的一个:header, payload-type, exception-type, wildcard, regex, ognl, xpath, jxpath, bean, groovy, custom。

        使用expression属性设置实际的表达式:

            如果evaluator是xpath, bean, ognl中的一个,expression是boolean类型的;

            如果evaluator是custom,需要使用customEvaluator指定一个已经被mule注册的自定义表达式。

 

        xpath: <expression-filter evaluator="xpath" expression="(msg/header/resultcode)='success'">

        jxpath: <expression-filter evaluator="jxpath" expression="(msg/header/resultcode)='success'">

        ongl: <expression-filter evaluator="ognl" expression="[MULE:0].equals(42)"/>  或  <ognl-filter expression="[MULE:0].equals(42)"/>

 

    2.1.3 RegEx Filter

        对message的payload使用正则表达式匹配,payload需要支持toString方法,因此可以使用AndFilter结合PayloadTypeFilter校验payload的类型。

        <regex-filter pattern="the quick brown (.*)"/>

 

    2.1.4 Wildcard Filter

        使用通配符对massage的payload进行匹配,payload需要支持toString方法,因此可以使用AndFilter结合PayloadTypeFilter校验payload的类型。

        <wildcard-filter pattern="the quick brown *"/>

 

    2.1.5 Exception Type Filter

        一个匹配异常类型的filter。

        <exception-type-filter expectedType="java.lang.RuntimeException"/>

 

    2.1.6 Message Property Filter

        该filter支持基于message property属性的业务逻辑过滤,这个过滤器非常强大,这时因为message的properties属性是对外公开的,用户可以自定义property的属性。

        属性匹配默认是大小写敏感的,可以通过caseSensitive进行修改,如:

        <message-property-filter pattern="Content-Type=text/xml" caseSensitive="false"/>

 

    2.1.7 Logic Filters

        Logic Filters包含三类:And, Or, and Not。由于它可以嵌套其他的filter,所以filter的逻辑可以进行组合。

        And Filter: 

        <and-filter>

        <payload-type-filter expectedType="java.lang.String"/>

        <regex-filter pattern="the quick brown (.*)"/>

        </and-filter>

 

        Or Filter:

        <or-filter>

        <payload-type-filter expectedType="java.lang.String"/>

        <payload-type-filter expectedType="java.lang.StringBuffer"/>

        </or-filter>

 

        Not Filter:

        <not-filter>

        <payload-type-filter expectedType="java.lang.String"/>

        </not-filter>

 

    2.2 Transport and Module Filters

        一些mule的transports和模块提供的自己的filter。这块的内容比较多,有时间单独介绍。

 

    2.3 Custom Filters

        当以上filter不能满足客户的需求时,你可以自定义filter。自定义filter需要实现Filter接口,该结构只包含一个方法:

        public boolean accept(MuleMessage message);

        当返回结果为true时,filter通过,否则没有通过。

<outbound>
<filtering-router>
<cxf:outbound-endpoint address="http://localhost:65071/services/EnterOrder?method=create"
synchronous="true"/>
<custom-filter class="org.mule.transport.http.filters.HttpRequestWildcardFilter">
<spring:property name="pattern" value="/services/EnterOrder?wsdl"/>
</custom-filter>
</filtering-router>
</outbound>
 
分享到:
评论

相关推荐

    MuleEsb开源框架简介.pdf

    Mule ESB 开源框架简介 Mule ESB 是一个基于 Java 的轻量级企业服务总线和集成平台,允许开发人员快速便利地连接多个应用,并支持应用间的数据交换。Mule ESB 支持集成现有系统而无论其底层采用何种技术,如 JMS、...

    MuleEsb开源框架简介

    ### MuleEsb开源框架详解 #### 一、MuleEsb框架概览 Mule Enterprise Service Bus(ESB)是一种先进的开源框架,专为现代企业的集成需求设计。Mule ESB的核心价值在于其强大的连接性和灵活性,使企业能够轻松整合...

    Mule ESB Studio v3.3 安装使用手册

    【Mule ESB Studio v3.3 安装使用手册】是针对Mule ESB集成服务平台的一个详细指导,旨在帮助用户成功安装和使用Mule Studio。Mule ESB是一款强大的企业服务总线(ESB)工具,用于构建、部署和管理集成解决方案。...

    Mule ESB Studio安装使用手册

    ### Mule ESB Studio安装使用手册 #### 一、初级教程概述 Mule ESB Studio是一款功能强大的集成开发工具,用于构建基于Mule ESB(Enterprise Service Bus)的应用程序和服务。Mule ESB是一个广泛应用于企业级应用...

    MULE esb 节点使用说明中文文档

    ### MULE ESB 节点使用说明中文文档 #### MULE ESB 概述与部署 MULE ESB(Enterprise Service Bus)是一种强大的集成平台,用于构建高度可扩展的应用程序和服务。它允许开发人员轻松地连接不同的应用程序、API 和...

    kenny-loggings:Mule ESB的日志记录组件

    **Mule ESB 日志记录组件:Kenny-loggings** Mule ESB(Enterprise Service Bus)是一款强大的集成平台,用于构建、部署和管理企业级应用的集成解决方案。在Mule ESB中,日志记录是至关重要的,因为它帮助开发者...

    mule整体概念学习

    ### Mule ESB 整体概念详解 #### 一、Mule ESB 概述 Mule ESB(Enterprise Service Bus)是一款基于Java的轻量级企业服务总线和集成平台,旨在帮助开发者快速便捷地连接不同的应用程序,并支持应用程序之间的数据...

    mule 3.2 节点详解

    Mule 3.2 是一款非常流行的集成平台,它基于企业服务总线(Enterprise Service Bus, ESB)架构设计而成,能够帮助开发者轻松地构建复杂的集成解决方案。本文将详细介绍 Mule 3.2 中的关键节点以及它们在构建集成应用...

    mule 下的json格式输出

    在Mule ESB(现在称为Anypoint Platform)中,JSON(JavaScript Object Notation)是一种常用的数据交换格式,尤其在API开发和集成场景中。JSON因其简洁、易读且易于处理的特点,被广泛用于发送和接收数据。本教程将...

    mule(java)开发简介

    Mule 是一个企业服务总线(Enterprise Service Bus, ESB)的消息框架,它被设计为轻量级且高度可扩展的ESB解决方案。Mule 的设计目标是简化企业应用程序之间的集成过程,同时确保系统的可维护性和可扩展性。 #### ...

    Mule_Studio_用户手册.pdf

    - **图形化创建Mule ESB流程**:新手或非专业Mule开发者可以通过拖拽组件来创建复杂的ESB流程。 - **XML与图形界面切换**:有经验的Mule开发者可以在图形界面和XML编辑器之间自由切换,这有助于更好地理解和维护Mule...

    mule配置常用节点解释

    Mule ESB是一种集成平台,用于构建连接不同系统和服务的应用程序。Mule的配置文件采用XML格式,组织成一棵XML元素树,其中包含了对服务、路由、转换器等关键组件的定义。 #### 二、基本标签及功能介绍 ##### 1. `...

    apache camel技术研究01

    3. Mule ESB是一个完整的ESB,包含额外的功能,但其集成逻辑可能较为复杂,适合大型企业。 4. Apache Camel的优势在于其丰富的组件库(超过100+),可以轻松地扩展和自定义,与Spring的集成也非常紧密,允许按需依赖...

    医疗 mirth手册

    其核心构建于另一个知名的 ESB 平台 Mule 之上,并针对医疗行业的特殊需求进行了扩展与定制化开发。Mirth 提供了丰富的功能支持,尤其是对于医疗标准格式的转换处理,使其成为医疗信息系统集成的理想工具。 #### ...

Global site tag (gtag.js) - Google Analytics