本文介绍如何安装Mule,并且开发一个简单的Mule例子。
1.下载Mule
到Mule官方网站下载Mule的社区版本,注意企业版本需要收费,而社区版本已经满足开发需要,并且开发源代码。下载地址是:[url]http://www.mulesource.org/display/MULE/Download[/url]。笔者下载的Mule版本是mule2.1.1。
2.安装需要的软件
(1)安装JDK1.6,这里就不详细描述。
(2)到[url]http://maven.apache.org/[/url] 下载Maven,下载Maven2.0.9版本。如果你只想使用mule,而不想编译mule自带的例子和mule源码,就不需要下载Maven。
(3)设置Maven的repository directory为c:\.m2\repository。如果是windows系统,在dos命令下创建.m2命令:mkdir .m2。
(4)设置环境变量,也可以在界面中设置:
Linux环境:
export JAVA_HOME=/opt/java/jdk
export MAVEN_HOME=/opt/apache/maven-2.0.9
export MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=256
export MULE_HOME=/opt/mule
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$MULE_HOME/bin
Windows环境:
set JAVA_HOME=C:\Program Files\Java\jdk
set MAVEN_HOME=C:\Apache\maven-2.0.9
set MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=256
set MULE_HOME=C:\Mule
set PATH=%PATH%;%JAVA_HOME%/bin;%MAVEN_HOME%/bin;MULE_HOME/bin
3.测试安装是否成功
在命令行下输入maven -version查看maven是否安装成功,输入mule查看mule是否安装成功。如果成功,就可以开始第一个Mule应用开发了。
4.开发第一个mule例子——Hello
(1)新建一个eclipse java工程,工程名称是:MyHello,创建包org.foo,在这个包下新建接口(interface) MyTestInterface,代码如下:
(2)在这个包下新建类MyTest,代码如下:
(3)在工程下新建文件夹conf用于存放工程配置文件,新建文件myhello-config.xml,内容如下:
(4)至此,一个Mule服务就开发完成了,是不是很容易?接下来就部署这个服务。右击该工程,点击“export”,将工程导出到一个目录,命名为MyHello.jar,然后将这个jar包放到C:\Mule\mule-2.1.2\lib\user下(我的Mule安装到
C:\Mule目录下)。这样部署就完成了。
(5)运行mule服务,有两种方式。第一种比较直接和简单,在命令行中输入:mule -config conf/myhello-config.xml即可。第二种,在MyHello工程文件目录下新建一个文件myHello.bat,内容如下:
然后双击这个文件就可以运行MyHello服务了,允许结果截图如下:
至此,一个简单的Mule服务就开发完成了,是不是很简单啊?接下来一篇文章讲解如何编译和导入Mule自带的例子到elicpse工程下。
1.下载Mule
到Mule官方网站下载Mule的社区版本,注意企业版本需要收费,而社区版本已经满足开发需要,并且开发源代码。下载地址是:[url]http://www.mulesource.org/display/MULE/Download[/url]。笔者下载的Mule版本是mule2.1.1。
2.安装需要的软件
(1)安装JDK1.6,这里就不详细描述。
(2)到[url]http://maven.apache.org/[/url] 下载Maven,下载Maven2.0.9版本。如果你只想使用mule,而不想编译mule自带的例子和mule源码,就不需要下载Maven。
(3)设置Maven的repository directory为c:\.m2\repository。如果是windows系统,在dos命令下创建.m2命令:mkdir .m2。
(4)设置环境变量,也可以在界面中设置:
Linux环境:
export JAVA_HOME=/opt/java/jdk
export MAVEN_HOME=/opt/apache/maven-2.0.9
export MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=256
export MULE_HOME=/opt/mule
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$MULE_HOME/bin
Windows环境:
set JAVA_HOME=C:\Program Files\Java\jdk
set MAVEN_HOME=C:\Apache\maven-2.0.9
set MAVEN_OPTS=-Xmx512m -XX:MaxPermSize=256
set MULE_HOME=C:\Mule
set PATH=%PATH%;%JAVA_HOME%/bin;%MAVEN_HOME%/bin;MULE_HOME/bin
3.测试安装是否成功
在命令行下输入maven -version查看maven是否安装成功,输入mule查看mule是否安装成功。如果成功,就可以开始第一个Mule应用开发了。
4.开发第一个mule例子——Hello
(1)新建一个eclipse java工程,工程名称是:MyHello,创建包org.foo,在这个包下新建接口(interface) MyTestInterface,代码如下:
package org.foo;
public interface MyTestInterface {
public String hello(String aname);
}
public interface MyTestInterface {
public String hello(String aname);
}
package org.foo;
public class MyTest implements MyTestInterface
{
public String hello(String aname)
{
return "you are: " + aname;
}
}
public class MyTest implements MyTestInterface
{
public String hello(String aname)
{
return "you are: " + aname;
}
}
xml
version
="1.0"
encoding
="UTF-8"
?>
< mule xmlns ="http://www.mulesource.org/schema/mule/core/2.1"
xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
xmlns:spring ="http://www.springframework.org/schema/beans"
xmlns:stdio ="http://www.mulesource.org/schema/mule/stdio/2.1"
xmlns:vm ="http://www.mulesource.org/schema/mule/vm/2.1"
xsi:schemaLocation="
[url]http://www.springframework.org/schema/beans[/url] [url]http://www.springframework.org/schema/beans/spring-beans-2.5.xsd[/url]
[url]http://www.mulesource.org/schema/mule/core/2.1[/url] [url]http://www.mulesource.org/schema/mule/core/2.1/mule.xsd[/url]
[url]http://www.mulesource.org/schema/mule/stdio/2.1[/url] [url]http://www.mulesource.org/schema/mule/stdio/2.1/mule-stdio.xsd[/url]
[url]http://www.mulesource.org/schema/mule/vm/2.1[/url] [url]http://www.mulesource.org/schema/mule/vm/2.1/mule-vm.xsd[/url]" >
< de.ion >
This is a simple component example that demostrates how to expose
a component over multiple transports.
de.ion >
< stdio:connector name ="SystemStreamConnector"
promptMessage ="Please enter yout name: "
messageDelayTime ="1000" />
< model name ="MyHelloSample" >
< service name ="MyHelloUMO" >
< inbound >
< stdio:inbound-endpoint system ="IN" />
inbound >
< component class ="org.foo.MyTest" />
< outbound >
< pass-through-router >
< stdio:outbound-endpoint system ="OUT" />
pass-through-router >
outbound >
service >
model >
mule >
< mule xmlns ="http://www.mulesource.org/schema/mule/core/2.1"
xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"
xmlns:spring ="http://www.springframework.org/schema/beans"
xmlns:stdio ="http://www.mulesource.org/schema/mule/stdio/2.1"
xmlns:vm ="http://www.mulesource.org/schema/mule/vm/2.1"
xsi:schemaLocation="
[url]http://www.springframework.org/schema/beans[/url] [url]http://www.springframework.org/schema/beans/spring-beans-2.5.xsd[/url]
[url]http://www.mulesource.org/schema/mule/core/2.1[/url] [url]http://www.mulesource.org/schema/mule/core/2.1/mule.xsd[/url]
[url]http://www.mulesource.org/schema/mule/stdio/2.1[/url] [url]http://www.mulesource.org/schema/mule/stdio/2.1/mule-stdio.xsd[/url]
[url]http://www.mulesource.org/schema/mule/vm/2.1[/url] [url]http://www.mulesource.org/schema/mule/vm/2.1/mule-vm.xsd[/url]" >
< de.ion >
This is a simple component example that demostrates how to expose
a component over multiple transports.
de.ion >
< stdio:connector name ="SystemStreamConnector"
promptMessage ="Please enter yout name: "
messageDelayTime ="1000" />
< model name ="MyHelloSample" >
< service name ="MyHelloUMO" >
< inbound >
< stdio:inbound-endpoint system ="IN" />
inbound >
< component class ="org.foo.MyTest" />
< outbound >
< pass-through-router >
< stdio:outbound-endpoint system ="OUT" />
pass-through-router >
outbound >
service >
model >
mule >
(5)运行mule服务,有两种方式。第一种比较直接和简单,在命令行中输入:mule -config conf/myhello-config.xml即可。第二种,在MyHello工程文件目录下新建一个文件myHello.bat,内容如下:
@echo off
setlocal
REM There is no need to call this if you set the MULE_HOME in your environment properties
REM but you must also define MULE_LIB for the example (see below)
REM or specify the config as a file: URI (see README.txt)
if "%MULE_HOME%" == "" SET MULE_HOME=%~dp0..\..
if "%MULE_BASE%" == "" SET MULE_BASE=%MULE_HOME%
REM This extends the classpath to include the configuration directory
REM Any changes to the files in .\conf will take precedence over those deployed to %MULE_HOME%\lib\user
SET MULE_LIB=.\conf
call "%MULE_BASE%\bin\mule.bat" -config myhello-config.xml
setlocal
REM There is no need to call this if you set the MULE_HOME in your environment properties
REM but you must also define MULE_LIB for the example (see below)
REM or specify the config as a file: URI (see README.txt)
if "%MULE_HOME%" == "" SET MULE_HOME=%~dp0..\..
if "%MULE_BASE%" == "" SET MULE_BASE=%MULE_HOME%
REM This extends the classpath to include the configuration directory
REM Any changes to the files in .\conf will take precedence over those deployed to %MULE_HOME%\lib\user
SET MULE_LIB=.\conf
call "%MULE_BASE%\bin\mule.bat" -config myhello-config.xml
至此,一个简单的Mule服务就开发完成了,是不是很简单啊?接下来一篇文章讲解如何编译和导入Mule自带的例子到elicpse工程下。