`

mule in action翻译23: 4.2 配置转换器

    博客分类:
  • ESB
阅读更多

mule in action翻译23: 4.2配置转换器

    在我们讨论如何使用转换器之前,我们应当先讨论它的作用域和它的常见配置属性。像在第三章中讨论的

endpoints一样,转换器也可以配置为本地的和全局的。例如在下面的 列表4.1中,这个流中有一个VM inbound  endpoint--这是一个本地endpoint,这个流对输入进行了base64编码。

 

Listing4.1 Encoding a payload in Base64

 

<flowname="base64-flow">
<vm:inbound-endpointpath="base64.in" 
      exchange-pattern="requestresponse"/>
<base64-encoder-transformer/>
</flow>

 

 

     这个转换器被认为是本地的,因为它没有"name"属性,并且不能被引用。这样的配置比较简短。但要是你的配置不是短短的一两屏的长度,或者当你有个转换器需要在别的流中共享时,你再使用如上面的简短配置你将难以弄清你使用的不同的转换器,而且你可能失去在不同地方重用一些转换器的机会。当你的配置文件开始增长时,最好是配置全局转换器,而在你endpoint引用他们。如果是为了使配置简洁,则经常使用本地转换器的方式。

 

    下面的配置片段展示了一个全局转换器的配置--一个对象转为二进制数组的转换器(我们将在4.2.1中详细讨论)。

    

<object-to-byte-array-transformername="ObjectToByteArray" />

 

 

   现在你明白了如何声明基本的转换器,下面学习如何配置它。

   当配置转换器时,你应当考虑下面四个常用的配置属性:

1、ignoreBadInput:这个布尔型属性的用途,在图标4.1中提到过。这个属性用来设置,当输入类型不是支

                                 持的类型时,将什么都不做而返回原样的消息。

2、returnClass:这个属性允许你来设置转换器将返回的类型的全限定名。当你不想使用转化器的默认类型

                           而要严格限制类型时,这是比较有用的(例如,一个转换器的目标类型可能是

                           java.lang.Object ,而你却要强制它处理java.util.Map类型的object)

3、encoding:表示转换结果将使用指定的编码方式。在处理不是使用Unicode的老系统时,这是比较有用的

                        这只对 类似string-tobyte-array-transformer 的输出要进行编码的转换器才是有用的。

4、mimeType:有时只设置返回类型和进行编码设置不足以解决问题;这些情况下,设置一个额外的MIME

                         可能是有用的。例如一个UTF-8的字符串,它可能是text/plain的,也可能是

                         text/tab-separated,也可能是其他的。

 

     值得强调的是,上面这些并不是一个转换器可配置的全部属性;各种转换器可能还有其他的配置属性。

例如,xslt-transformer有 xsl-file属性,jaxbobject-to-xml-transformer需要jaxbContext-ref属性。我们将分别在 4.4.2 和4.4.3章节讨论这些转换器。

 

     现在你明白了如何配置一个转换器,现在我们把它们串成链来玩一下。有两种方式串成链:你可以把他们

按需要的顺序放在流里,或者你可以使用 transformer-refs元素设置以空格分割的多个转换器引用列表。

在下面的列表中来看两种风格的使用。

Listing4.2 Two styles of references to declare a chain of three transformers

 

<object-to-byte-array-transformername="objectToByteArray" />
<object-to-string-transformername="objectToString"/>
<mulexml:xslt-transformer name="prancingToBM" xsl-file="xsl/prancing-to-gondor-bm.xsl"/>
     <flowname="transformerRefsFlow">
          <!--使用空格分割的 引用列表-->
          <http:inbound-endpoint 
                       host="localhost" 
                       port="8080"
            transformer-efs="objectToByteArray prancingToBM objectToString"/>
     <loggermessage="Messagereceived!"/>
</flow>

<flowname="transformerFlow">
      <http:inbound-endpoint host="localhost"  port="8081"/>
      <!--使用transformer列表 引用元素-->
      <transformerref="objectToByteArray"/>
      <transformerref="prancingToBM"/>
      <transformerref="objectToString"/>
      <loggermessage="Messagereceived!"/>
</flow>

 

 

  第二种方式更稳妥一些,因为使用一些高级的xml编辑器可以检查每个独立的转换器引用,而引用列表的方式只有在运行时mule加载配置的时候才进行检查。

 

   你现在获得了足够的关于配置和使用转换器的知识,下节探讨一些重要的转换器。

     最佳实践:查看mule API 中的org.mule.api.transformer.Transformer 可以获知所有可用的转换器。

 

 

 

分享到:
评论

相关推荐

    Mule in Action, 2nd Edition

    Mule in Action, Second Edition is a totally-revised guide covering Mule 3 fundamentals and best practices. It starts with a quick ESB overview and then dives into rich examples covering core concepts ...

    mule in action

    《Mule in Action》是一本专注于Mule ESB(企业服务总线)的入门教程,旨在帮助读者系统地学习和理解这一强大的集成平台。Mule ESB是开源领域中的一个重量级选手,常用于构建灵活、可扩展的企业级集成解决方案。这...

    Mule in action下载(英文版)

    为了提高配置的可维护性和可扩展性,《Mule in Action》详细介绍了Mule的配置模组化策略。独立配置、继承配置、导入配置以及异构配置等多种方式,让开发者可以根据项目的具体需求灵活选择最合适的配置方法。 ### ...

    mule in action 第二版英文正式版

    ### Mule in Action 第二版 英文正式版 关键知识点概述 #### 一、书籍简介与背景 《Mule in Action》第二版是一本详细介绍Mule ESB(Enterprise Service Bus)这一著名开源框架的书籍。该书由David Dossot、John D...

    Mule in Action

    Mule in Action is acomprehensive tutorial designed for working Java developers. This authoritativebook explores the architecture and the main features of version Mule 2 throughnumerous running ...

    Mule in Action, Second Edition

    总体而言,Mule in Action, Second Edition这本书是关于Mule ESB使用和集成实践的权威指南,涵盖了从基础概念到高级特性的广泛主题。本书适合于那些希望深入学习和利用Mule ESB进行企业级应用集成的开发人员和架构师...

    mule in action 说明+文档介绍

    mule in action 和doc文档详细介绍 Mule的核心组件是UMO(Universal Message Objects,从Mule2.0开始UMO这一概念已经被组件Componse所代替),UMO实现整合逻辑。UMO可以是POJO,JavaBean等等。它支持30多种传输协议...

    Mule in action

    在源码方面,《Mule in Action》会带领读者深入了解Mule的内部工作机制,包括如何阅读和理解Mule配置文件,以及如何自定义Mule组件。这有助于开发者更好地定制化Mule,以满足特定的业务需求。此外,通过学习Mule的...

    mule in action 即mule实战源码

    《Mule in Action》是关于Mule ESB的实战指南,该书深入浅出地介绍了如何使用Mule这一强大的企业服务总线(ESB)进行应用程序集成。Mule ESB以其用户基数庞大、文档详尽以及社区活跃而备受赞誉,是企业级集成解决...

    Mule in Action 2014

    《Mule in Action》第二版是一本全面介绍如何使用Mule ESB进行高效集成开发的书籍,由David Dossot、John D’Emic和Victor Romero共同编写。 #### 二、Mule ESB的关键特性 **1. 消息处理:** Mule ESB支持多种消息...

    mule in action mule 实战

    Mule in Action是一本关于Mule ESB(企业服务总线)的实战指南,旨在为读者提供深入的实践知识和案例分析。ESB作为一种流行的中间件技术,用于实现不同系统之间的服务集成。Mule作为一个开源的ESB解决方案,通过其...

    Mule In Action

    - **XML元素家族**:Mule ESB提供了丰富的XML元素,用于定义各种配置项,如连接器、端点、路由器等。 - **配置值**:配置文件中的值可以通过外部化配置文件、环境变量等方式动态设置。 - **Schema位置**:Mule ...

    MULE IN ACTION

    MULE IN ACTION Mule是一个企业服务总线(ESB)消息框架,它为集成不同系统和应用程序提供了一种轻量级的、易于使用的方法。Mule的设计哲学围绕着灵活性和可扩展性,通过其高度可插拔的架构,支持多种传输协议和...

Global site tag (gtag.js) - Google Analytics