Mule IDE:MuleStudio

Mule IDE:MuleStudio

sf2gis@163.com

2016年10月18日创建

 

1 目标:方便Mule组件使用,程序开发。

2原理:定制Eclipse,增加对MULE_HOME的自动扫描,增加MULE相关组件、工程等的操作。

3方法:基本组件

连接器Connector:用于收发消息,添加内容。

4方法:包文件目录

Java文件:Src/main/java

测试文件:Src/test/java

配置文件:src/main/resources,src/test/resources

流程配置文件:flows/*.mflow

5方法:流程管理

5.1 流程编辑:可视化编辑MessageFlow或XML编辑Configuration XML。可以设置全局组件,在Global Elements中编辑。

5.2 流程面板:流程的各种组件

Mule交换消息的外部产生/接受端:端点Endpoints。

第三方通讯组件:Components

格式转换:Transformers

范围控制:Scope,控制Flow的范围、流程

流程控制:控制Flow内部消息流程。

6方法:端点Endpoints:消息的产生/接受端

6.1 文件端点File:由文件系统产生/接受消息。

入口文件Inbound:配置文件的扫描规则,包括路径Path,处理前规则MoveToPattern,MoveToDirectory,扫描规则PollingFrequency,FileAge,文件扫描规则RegexFilter,文件名排序规则Comparator。

 

出口文件Outbound,配置文件的输出路径Path,常用规则如下。

 

6.2 网络端点HTTP:由Internet网络产生/接受消息。

入口HTTP:设置请求的HTTP地址,端口,路径等。

出口HTTP:设置最终的HTTP地址,端口,路径等。

6.3 示例:文件格式转换,读取输入文件,转换格式,写入输出文件夹。

参考:http://blog.csdn.net/huyouheng/article/details/7405472

6.3.1 设置流程:设置流程各组件。

6.3.2 配置输入文件,结果文件,错误输出文件:相应文件夹位置。

  

6.3.3 配置条件选择,如果包含error.txt,则输出到错误文件夹,否则输出到结果文件夹。

错误数据表达式:#[message.inboundProperties.originalFilename=="error.txt"]

6.3.4 转换格式:配置格式转换器,添加指定字符串。

6.3.5 运行:在输入文件夹中添加文件,如果文件夹为error.txt则错误文件夹中出现结果文件,否则出现在结果文件夹中。文件中追加字符串。

//error.txt

this iserror.2016-8-1 16:33:20abc

//test.txt

11123

dddabc

 

6.4 示例:HTTP请求转发,入口设置为http://localhost:8081/gis,出口HTTP为www.baidu.com

参考:http://www.cnblogs.com/leipei2352/archive/2012/08/17/2644909.html

6.4.1 设置流程:设置流程各组件。

 

6.4.2 设置Java组件,配置组件对应的格式转换类。

// com.lee.MyTransformer

package com.lee;

 

importorg.mule.api.MuleMessage;

importorg.mule.api.transformer.TransformerException;

importorg.mule.transformer.AbstractMessageTransformer;

 

public classMyTransformer extends AbstractMessageTransformer {

 

      @Override

      public Object transformMessage(MuleMessagemessage, String outputEncoding)

                 throws TransformerException {

           // TODO Auto-generated method stub

           String content=null;

           try {

              content = message.getPayloadAsString();

              logger.info("orignal content:"+content);

           } catch (Exception e) {

                    logger.error(e.getMessage());

           }

           return content;

      }

 

}

6.4.3 设置入口HTTP:host=localhost,port=8081,path=gis,URL=http://localhost:8081/gis

 

6.4.4 设置出口HTTP:host=www.baidu.com,port=80,path为空,URL=http://www.baidu.com

 

6.4.5 运行,输入http://localhost:8081/gis则跳转到百度。

7方法:组件Components,用于Mule与各种第三方软件通讯

7.1 日志Logger

7.1.1 目标:打印想要信息的日志。

进行操作之前可以进行日志打印Message,然后根据Message的内容进行MEL消息提取。

7.1.2 原理:通过MEL表达式读取消息内容,打印。

7.1.3 流程:使用MEL配置信息体Message,设置日志级别Level,设置日志分类Category。

Level=Info,Category=Mycat,消息体Message

may=#[message.inboundProperties['may']],

method=#[message.inboundProperties['http.method']]

请求http://localhost:8081/mel?may=xx ,结果:

INFO  2016-08-0817:01:23,785 [[test1].connector.http.mule.default.receiver.02] MyCat: may=xx, method=GET

7.2 与Java通讯:Java组件

7.2.1 目标:与Java通讯

7.2.2 原理:Java获取消息,进行格式转换。

7.2.3 流程:创建格式转换类,配置Java组件

创建格式转换类,需要扩展AbstractMessageTransformer

// com.lee.MyTransformer

package com.lee;

 

importorg.mule.api.MuleMessage;

importorg.mule.api.transformer.TransformerException;

importorg.mule.transformer.AbstractMessageTransformer;

 

public classMyTransformer extends AbstractMessageTransformer {

 

      @Override

      public Object transformMessage(MuleMessagemessage, String outputEncoding)

                 throws TransformerException {

           // TODO Auto-generated method stub

           String content=null;

           try {

              content = message.getPayloadAsString();

              logger.info("orignal content:"+content);

           } catch (Exception e) {

                    logger.error(e.getMessage());

           }

           return content;

      }

 

}

添加Java组件,配置组件对应的格式转换类。

//结果

INFO  2016-08-04 10:22:56,695[[httptest].connector.http.mule.default.receiver.03] com.lee.MyTransformer:orignal content:/gis

7.3 命令行回现Echo:console中显示信息。

//结果

INFO  2016-08-04 10:25:50,473[[httptest].connector.http.mule.default.receiver.02] com.lee.MyTransformer:orignal content:/gis

INFO  2016-08-04 10:25:50,474[[httptest].connector.http.mule.default.receiver.02]org.mule.component.simple.LogComponent:

********************************************************************************

* Message receivedin service: HttpTestFlow1. Content is: '/gis'               *

8方法:格式转换器Transformer

8.1 添加字符串AppendString:将指定字符串添加到消息尾部。

//结果

INFO  2016-08-04 10:52:11,504 [[httptest].connector.http.mule.default.receiver.02]com.lee.MyTransformer: orignal content:/gis

INFO  2016-08-04 10:52:11,506[[httptest].connector.http.mule.default.receiver.02]org.mule.component.simple.LogComponent:

********************************************************************************

* Message receivedin service: HttpTestFlow1. Content is: '/gisxxx122'         *

********************************************************************************

8.2 设置Payload,payload表示消息体。

 

INFO  2016-08-04 15:35:42,400[[httptest].connector.http.mule.default.receiver.02] com.lee.MyTransformer:orignal content:/gis

INFO  2016-08-04 15:35:42,401[[httptest].connector.http.mule.default.receiver.02]org.mule.component.simple.LogComponent:

********************************************************************************

* Message received in service: HttpTestFlow1. Content is:''xxxx''             *

********************************************************************************

9方法:过滤器Filter,消息过滤

9.1 正则表达式Regex:按照正则表达式过滤。

9.2 类型过滤器Payload:过滤指定类型。

流程控制器:FlowControl

条件控制器Choice:if…then…else…。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sf2gis2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值