Mule 官方例子研究
一、编译导入Mule自带的例子
1.准备
安装Mule。这里就不介绍mule的安装了,请参考《Mule安装部署手册》。
2. 编译Mule自带例子中的Hello例子
使用命令行到目录:D:\app\mule3.1.1\examples\hello下,输入:mvn 即可。这里需要安装Maven;
3. 导入Eclipse工程
输入命令:mvn eclipse:eclipse 成功后,即可导入eclipse。
4.导入这个工程到eclipse
(1)选择:File > Import
(2)选择:展开“General” 选择“Existing Projects into Workspace”
(3)选择Browse,导入后,选择Finish。完成。
5.配置Elipse工程(build path)
(1)右击工程,选择“Build Path ->Configure Build”:
(2)选择“Libraries->Add Library”
(3)点击“User Library”,点击“Next”
(4)点击“User Libraries”,点击“New”
(5)输入:MULE_LIB,点击“OK”
(6)点击“Add JARs”,选择Mule主目录下的 \lib\mule,选择所有的jar包,点击“Open”
(7)点击“OK”,点击“Finish”
(8)点击“Add Variable”,点击“Configure Variables”,点击“New”
(9)输入:M2_REPO,选择一个目录。默认地,Maven会在刚才使用mvn命令编译时,
把下载的jar包放到:C:\Documents and Settings\Administrator\.m2\repository 目录下,Administrator是我的用户名,这里我设置的目录是C:\.m2\repository,你可以把那个目录下的所有copy到这个目录下。 点击“Folder”,选择C:\.m2\repository。
(10)点击“OK”,点击“yes”,点击“OK”。设置完成。
6.运行这个工程
(1)右击工程,选择“Run->Run Configurations”
(2)双击“Java Application”,把名字改为:Hello,选择main class为:org.mule.MuleServer。
如图:
(3)在Arguments选项表中,在Program Arguments框中输入-config conf\hello-config.xml
(4)点击“Apply”,“Run”。运行例子,如图:
备注:
运行“Run as Mule Server”报错“A Mule runtime distribution must be configured”的解决办法:在eclipse的classpath界面里面添加libray ;右键工程---->properties----->Java Build Path----->Libraries------>Add Library------>Mule Classpath
二、ECHO例子分析
2.1概述
这个演示了“如何通过使用一个简单的web service flow,让我们了解Mule ESB 组件;在这个例子中,这个组件被了解是通过使用CXF 的JAX-WS web Service.
(上图描述了MULE2.X 的内容。System Stream Connector 和Axis Soap Connector已经被普通的http Connector替换,服务通过使用CXF被从新实现,用来处理Soap的请求和响应);
上图说明:
1、 通过两种方式接入(红色线):一个是System.in, 一个是Soap(http)方式
2、 每种接入都可以通过接入器(Connector)经过NMR(Normalized Message Router)规范化的消息路由转发后,进行输出,目前通过两种方式:System.out 和Soap(http)方式。
2.2运行应用
简单的拷贝预构建的档案资料(mule-example-echo.zip)到应用文件夹($MULE_HOME/apps),并启动mule。去通过浏览器访问web service 调用:
http://localhost:65082/services/EchoUMO/echo/text/hello
通过在控制台按“CTR-C”停止mule;
2.3编译例子
依靠你正在使用的编译工具(Ant or Maven) ,你能够通过简单的运行”ant” 或”mvn”去编译样例,这将编译样例的类文件,产生一个应用的zip文件,拷贝这个zip文件到 $MULE_HOME/apps.
2.4 The Echo 组件
Echo Service 是基于一个POJO 组件,该组件是使用JAX-WS 注解方式被注解,并作为一个web service 被暴露出来,该Web Service 是在MULE 使用基于流的配置之上的。组建的初始化如下:
public class Echo
{
public String echo(String string)
{
return string;
}
}
通过增加JAX-WS注解的方法,我们能把该类方法发布成一个web service, 并具体说明输入参数和响应是怎样被映射的。
@WebService
public class Echo
{
@WebResult(name="text")
public String echo(@WebParam(name="text") String string)
{
return string;
}