1.4 mule 快速入门
先来介绍以下本书例子中提到的Prancing Donkey Maltworks, Inc 公司:
这是一个处于迅速发展中的,中等规模的酒厂,总部设在美国。
他们明智的开发部门选择了使用mule来缓解应用整合的痛苦。
现在需要创建一个集成应用,让第三方可以在Prancing Donkey 公司的网上商店
(www.theprancingdonkey.com )进行产品注册和销售:
Prancing Donkey公司的合作伙伴向网店发送JSON的格式的产品数据。
数据被接受后,转换成字符串,并放置到JMS队列,进行后续处理。
随后要介绍的内容:
首先使用mule Studio创建一个新mule工程。
然后,要创建一个流,并使用Mule Studio中内嵌的 Mule Server来对它进行测试 。
之后编写一个测试类,测试的流的功能。
最后,演示mule应用的创建、测试和部署。
1.4.1 安装 Mule Studio
可以从www.mulesoft.org下载mule Studio。下载后解压,双击mule图标你出现如图1.3的屏幕。
在创建项目之前,需要安装Mule Community Runtime。
单击Help-- Install New Software。在下面的屏幕中,展开 Work With的下拉列表,
选择Mule ESB Runtimes for Studio。
最后,选择Mule ESB Server Runtime CE3.4.0 如图1.4。
双击创建工程如图1.5
在这里填写项目名称、描述,并选择 Mule runtime。
单击下一步,再次给你机会,对这个项目启用Maven。
跳过这一步,而接下来都点击next,然后你击Finish开始你的创作流程(图1.6)。
当您设定流的名称和描述后,可使用mule Studio以图形化方式定义你的集成。
1.4.2 设计流
流是构建mule集成应用的主要机制。流包含一个数据来源和其后的一系列消息处理器。
一条消息的生命起始于inbound endpoint--它可能是HTTP POST或从数据库提取数据的调度程序。
消息会被在流中定义的一系列的处理器进行处理,处理顺序和流中定义的顺序相同。
流通过交换模式的定义可以支持多种调用方式。
例如,一个one-way 交换方式意味着流是异步的。
request-response 的交换方式意味着流将返回一个结果。
一个流可以设置终结于一个outbound endpoint,这个outbound endpoint可能把消息发送给另外一个流
或发送给一个后台的服务器。
在屏幕的右侧面板中包含端点库和消息处理器,你将用它们来建立流。
使用filter查找 HTTP endpoint 并拖动它到你的流。如图1.7。
HTTP端点的垂直方向表示该流的交换方式是 request-response的。
流的交换方式表明了它是否会返回一个结果。 现在配置流的交换方式为one-way。
HTTP服务器将对指定的 host、port、path 进行监听,你可以通过右键点击HTTP endpoint
来设置这些参数。 见图1.8。
现在,你需要向流添加两个消息处理器:字节数组到字符串的转换器 和 JMS outbound endpoint。
前者是把 HTTP inbound endpoint 传送的字节流转换为字符串对象。
你可从右侧的处理器库拖入流。见图1.9。
现在,在 JMS endpoint 单击鼠标右键并定义要发送到的队列(图1.10)。
你可能会注意到,JMS endpoint 有一个红色的X。这是因为还没配置要连接的JMS broker。
来使用ActiveMQ(一个apache下开源的支持 JMS 的消息代理)进行配置。
在端点上单击鼠标右键,选择References选项卡,然后单击加号图标,
如图1.11和1.12所示。记得要把JMS规范更改为1.1。
现在来设置一个用来进行本地测试的ActiveMQ实例。
下载 ActiveMQ的地址为 http://activemq.apache.org/download-archives.html,我们与版本5.5.1。
解压缩文件,进入bin目录,然后运行ActiveMQ。
总结一下你都做了些什么:
产品信息将以JSON的格式发送到HTTP endpoint。
byte-array-to-string转换器把HTTP POST过来的数据由原来类型转换为字符串。
--我们将在第4章深入讨论转换器
JMS outbound endpoint最终会将消息发送到指定的消息队列。
--Endpoints 是mule 的 流获取数据或发出数据的机制,在第3章中详细讨论Endpoints细节。