Mule安装与开发部署一个简单例子

简介:



    本文介绍如何安装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,代码如下:
package org.foo;

public  interface MyTestInterface {
   public String hello(String aname);
}
    (2)在这个包下新建类MyTest,代码如下:
package org.foo;

public  class MyTest  implements MyTestInterface
{
   public String hello(String aname)
  {
     return  "you are: " + aname;
  }

}
    (3)在工程下新建文件夹conf用于存放工程配置文件,新建文件myhello-config.xml,内容如下:
<? 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 >

     <!--
                The stdio connector is used to send and receive information via System.in and System.out.
                Note this connector is .ly really useful for testing purposes.
                        promptMessage - is what is written to the console
                        messageDelayTime - is the time in milliseconds before the user is prompted again.
                These properties are set as bean properties . the connector.
        
-->
         < stdio:connector  name ="SystemStreamConnector"
                 promptMessage ="Please enter yout name: "
                 messageDelayTime ="1000" />

        <!--
                The Mule model initialises and manages your UMO components
        
-->
         < model  name ="MyHelloSample" >
                <!--
                        A Mule service defines all the necessary information about how your components will
                        interact with the framework, other components in the system and external sources.
                        Please refer to the Configuration Guide for a full de.ion of all the parameters.
                
-->
                 < service  name ="MyHelloUMO" >
                        <!--  any number of endpoints can be added to an inbound router -->
                         < inbound >
                                 < stdio:inbound-endpoint  system ="IN" />
                                <!-- vm:inbound-endpoint path="echo"/-->
                         </ inbound >

                         < component  class ="org.foo.MyTest" />

                        <!--
                                An outbound router can have .e or more router configurations that can be
                                invoked depending . business rules, message contents, headers or any other
                                criteria. The pass-through-router is a router that automatically passes
                                on every message it receives
                        
-->
                         < outbound >
                                 < pass-through-router >
                                         < stdio:outbound-endpoint  system ="OUT" />
                                 </ pass-through-router >
                         </ outbound >
                 </ service >
         </ model >
</ mule >
    (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,内容如下:
@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

    然后双击这个文件就可以运行MyHello服务了,允许结果截图如下:


    至此,一个简单的Mule服务就开发完成了,是不是很简单啊?接下来一篇文章讲解如何编译和导入Mule自带的例子到elicpse工程下。


     本文转自panpan3210 51CTO博客,原文链接:http://blog.51cto.com/panpan/132270,如需转载请自行联系原作者





相关文章
|
6月前
【Qt 学习笔记】使用QtCreator创建及运行项目 | 项目初始代码解释
【Qt 学习笔记】使用QtCreator创建及运行项目 | 项目初始代码解释
984 1
|
11天前
|
Dubbo Java 应用服务中间件
入门运行Soul
入门运行Soul
40 3
入门运行Soul
|
3月前
|
Java Go API
我用go-zero开发了第一个线上项目
我用go-zero开发了第一个线上项目
|
4月前
|
运维 Serverless Go
函数计算产品使用问题之创建层时,如何添加Go环境
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
4月前
|
运维 监控 Java
函数计算产品使用问题之Java 17作为运行时环境,并已使用WebIDE完成代码的修改和调试,如何部署代码
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
6月前
|
存储 缓存 算法
【Conan 入门教程】从零开始编写第一个自定义部署器
【Conan 入门教程】从零开始编写第一个自定义部署器
149 1
PlayFab(二)如何通过Demo应用来进一步熟悉Playfab
PlayFab(二)如何通过Demo应用来进一步熟悉Playfab
|
Java 数据处理 数据库
StringMvc环境搭建以及小demo,例子
StringMvc环境搭建以及小demo,例子
136 1
StringMvc环境搭建以及小demo,例子
|
算法 测试技术 iOS开发
【第三篇】XiaoZaiMultiAutoAiDevices之运行流程
本框架大部分代码都是有详细的注释,配合此教程系列,把流程梳理通应该是没有什么问题。
111 0
【第三篇】XiaoZaiMultiAutoAiDevices之运行流程
|
数据采集 前端开发 JavaScript
【node拓展】web开发模式 | express应用程序生成器
【node拓展】web开发模式 | express应用程序生成器
【node拓展】web开发模式 | express应用程序生成器