首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

创办自定义转换器(Creating Custom Transformers)

2012-07-23 
创建自定义转换器(Creating Custom Transformers)作者:wuwenyu | 出处:博客园 | 2011/11/30 9:38:29 | 阅

创建自定义转换器(Creating Custom Transformers)
作者:wuwenyu | 出处:博客园 | 2011/11/30 9:38:29 | 阅读16次 Creating Custom Transformers

一个自定义转换器是实现了org.mule.api.transformer.Transformer接口的用户自定义类。你的类可以根据需要继承

AbstractTransformer 或者 AbstractMessageAwareTransformer

该章节将更加详细的描述如何创建一个自定义转换器。

Mule ESB 提供了很多标准化的转换器,包括XML转换器(例如XML转换成Object,XSLT,和DOM转换成XML),

加密转换器能够对数据进行加密和解密,压缩转换器能够对数据进行压缩和解压缩,还有更多。可以参考

Using Transformers提供了一个标准转换器的列表,使用图形化界面创建你的数据转换器,详情参考

Mule Data Integrator.

转换器类(Transformer Classes)

AbstractTransformer 允许你访问和转换你的源数据而且可以根据需要指定你使用的编码。它定义了一些方法来控制

转换器所能支持的数据类型,并且验证预期的返回值类型,留给你的只是一个简单的doTransform()方法去实现。


在Hello World example例子中定义了一个名为StdinToNameString自定义转换器,从字符串中删除换行符和新行,

package org.mule.example.hello;import org.mule.api.transformer.TransformerException;import org.mule.transformer.AbstractTransformer;public class StdinToNameString extends AbstractTransformer{ public StdinToNameString(){ super(); this.registerSourceType(String.class); this.setReturnClass(NameString.class);} public Object doTransform(Object src, String encoding) throws TransformerException{NameString nameString = new NameString(); String name = (String) src;nameString.setName(name.replaceAll("\r", "").replaceAll("\n", "").trim());  return nameString;}}

这个转换器定义如下:

<custom-transformer name="StdinToNameString" class="org.mule.example.hello.StdinToNameString" /> ...<service name="GreeterUMO"> <inbound> <stdio:inbound-endpoint system="IN" transformer-refs="StdinToNameString" />  </inbound>...
原文地址:http://www.mulesoft.org/documentation/display/MULE2USER/Creating+Custom+Transformers

热点排行