`
li-yuan
  • 浏览: 68577 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

骑骡试验,用Mule的例子做的两次试验

阅读更多
   这几天看了一下Mule的文档,这头骡子果然不错,可以很快上手,支持的协议也很多,完全满足我策划的一个应用。看完文档和例子,总觉得手痒痒,想做点东西试试,自己从头开始觉得搭环境比较麻烦,预算打算那现成的例子来做做试验。

一、用 Web Service 集成Echo和Hello这两个例子
    Echo是Mule User Guide里的第一个例子,主要展现了如何开发一个支持多种协议的 Mule 组件,Echo 组件有一个echo方法接收一个String再把这个String原封不动的返回,这个组件可以被配置为从标准输入接收参数也可以被配置为通过Web Service接收参数。而 Hello 主要是用来说明多个组件如何协作和如何管理事件转化,这个例子接收一个String然后在前面加上Hello再输出到标准输出。既然 Mule 是应用集成框架,那么集成这个两个例子肯定不会有什么问题。集成后的流程是Hello把处理后的结果通过SOAP协议发送给一个独立运行的Echo实例,再在Echo实例的控制台上。
    首先,我们修改Echo的配置文件echo-aixs-config.xml为EchoUMO增加一个outbound-router,把EchoUMO的返回值输出到标准输出,具体修改如下:
 
xml 代码
 
  1. <outbound-router>  
  2.         <router  className="org.mule.routing.outbound.OutboundPassThroughRouter">  
  3.                <endpoint address="stream://System.out"/>  
  4.         </router>  
  5.  </outbound-router>  
<outbound-router>
接着我们修改hello-config.xml把处理结果发送给Echo,这里要特别注意一个问题因为要启动两个Mule实例,就必须让两个实例的Mule Admin监听不同的端口,默认情况下Mule Admin都是监听60504端口,echo已经监听了60504端口了,所以我们让hello监听60506端口,这就需要在hello-config.xml增加一个配置来指定Mule Admin服务的url:
<mule-environment-properties serverurl="tcp://localhost:60506">
xml 代码
 
  1. <mule-environment-properties serverUrl="tcp://localhost:60506"/>  

修改ChitChatUMO descriptor的outbound-router把System.out endpoint改成Web Service的endpoint。具体修改如下:
<mule-descriptor implementation="org.mule.components.simple.BridgeComponent" name="ChitChatUMO"></mule-descriptor></mule-environment-properties><interceptor name="default">
xml 代码
 
  1. <mule-descriptor name="ChitChatUMO" implementation="org.mule.components.simple.BridgeComponent">  
  2.             <inbound-router>  
  3.                 <endpoint address="vm://chitchatter" transformers="NameStringToChatString"/>  
  4.             </inbound-router>  
  5.             <outbound-router>  
  6.                 <router className="org.mule.routing.outbound.OutboundPassThroughRouter">  
  7.                     <!--endpoint address="stream://System.out" transformers="ChatStringToString" /-->  
  8.                     <endpoint address="axis:http://localhost:65081/services/EchoUMO?method=echo" transformers="ChatStringToString">  
  9.                         <properties>  
  10.                             <property name="soapAction" value="${methodNamespace}${method}"/>  
  11.                             <map name="soapMethods">  
  12.                                 <list name="qname{echo:http://simple.components.mule.org}">  
  13.                                     <entry value="echoRequest;string;in"/>  
  14.                                     <entry value="echoResponse;string;out"/>  
  15.                                 </list>  
  16.                             </map>  
  17.                         </properties>  
  18.                     </endpoint>  
  19.                 </router>  
  20.             </outbound-router>  
  21.             <interceptor name="default"/>  
  22.         </mule-descriptor>  
    </interceptor>
都修改好了,启动echo和hello在hello控制台输入echo&hello,可以看到echo控制上输出Hello echo&hello。
第一个试验完成了,通过试验知道了启动两个mule实例需要修改Mule Admin端口,知道了调用Web Services的配置方法,虽然Stock Quote例子专门用来说明如何调用Web Services,但自己动手感觉很不一样。

二、用tcp协议串连连个echo
    拷贝echo-config.xml为echo-config1.xml修改echo-config.xml给EchoUMO增加一个tcp协议的endpoint,再拷贝echo-config.xml为echo-config2.xml把EchoUMO
的outbound-router的endpoint改为tcp协议。注意为了启动两个实例和第一试验一样要修改echo-config2.xml中Mule Admin的端口。
具体修改为:
echo-config1.xml文件
<outbound-router></outbound-router>
xml 代码
 
  1. <outbound-router>  
  2.     <router className="org.mule.routing.outbound.OutboundPassThroughRouter">  
  3.         <endpoint address="tcp://localhost:7979"/>  
  4.     </router>  
  5. </outbound-router>  

echo-config2.xml文件
<inbound-router><endpoint address="stream://System.in"><endpoint address="vm://echo">
xml 代码
 
  1. <inbound-router>  
  2.      <endpoint address="tcp://localhost:7979"/>  
  3.      <endpoint address="stream://System.in"/>  
  4.      <endpoint address="vm://echo" />                 
  5. </inbound-router>  

现在分别启动echo1和echo2,在echo1的标准输入中输入xx,在echo2的控制台上可以看到输出xx。
tcp协议是我比较关心的,光靠这个试验还是有很多不懂的例如tcp的连接是想http那样发送一个请求就关闭一次还是一直保持连接,只有等有空再自己写个demo试试。
Mule如果能有一个像BizTalk那样的图形化开发工具和监控工具那就更好了,相信不久就会有这样的工具被开发出来,数据格式转化的支持好像也没有太多可用的现成组件这点要像有些国产的集成平台就好了。
</endpoint></inbound-router></outbound-router>
分享到:
评论
1 楼 waitmannee 2007-12-31  
現在有了這樣的工具了啊,我們公司開發的IDBUS,就是用界面配置xml文件,支持絕大部分協議
http://www.idsignet.com/web/portal/products/idbus看看吧,不過不免費的哦

相关推荐

    mule例子分析

    Mule 是一个强大的企业服务总线(ESB)和集成平台,它允许不同的系统和应用程序之间进行通信。...这两个简单的例子为理解 Mule 的更复杂集成提供了基础,并展示了如何利用 Mule 实现灵活、可扩展的企业级集成。

    Mule ESB 开发例子

    本篇文章将详细介绍如何通过具体的示例来了解Mule ESB 的基本使用方法,尤其适合初学者入门学习。 #### 二、Mule Studio 安装与配置 ##### 1. 安装前的准备 在安装 Mule Studio 之前,需要先确保已经完成了以下...

    mule esb 项目 例子 入门

    Mule ESB(Enterprise Service Bus,企业服务总线)是一款强大的开源集成平台,它帮助企业将不同的系统、应用程序和服务连接在一起,实现数据的高效流转。本教程将带您入门Mule ESB项目,通过实例学习其核心概念和...

    mule 具体例子(代码)

    Mule ESB(Enterprise Service Bus,企业服务总线)是一种流行的开源集成平台,用于构建连接应用程序和服务的复杂系统。在本教程中,我们将探讨Mule的实际应用,通过代码示例来理解其工作原理。 首先,我们需要了解...

    Mule ESB开发一个小例子

    在本文中,我们将通过一个简单的小例子来介绍如何使用Mule ESB进行开发。 首先,我们需要进行环境配置。安装Mule Studio,它是Mule ESB的集成开发环境。确保已经安装了JDK,版本至少为1.6u26或1.7u13,并设置了JAVA...

    mule IDE (mule ESB)

    Mule ESB 是一个轻量级的基于java的企业服务总线和集成平台, 使得开发人员可以快速,简单的连接多个... Mule ESB 包含如下强大的能力: 服务创建和托管— 暴露和托管可重用服务, 使用Mule ESB作为一个轻量级服务容器.

    Mule2.2 BookStore例子学习

    在这个例子中,你可能需要使用Mule Studio来创建和部署BookStore应用。 8. **监控和调试**:利用Mule的监控工具,如Mule Management Console(MMC),实时查看应用的运行情况,进行故障排查和性能优化。 9. **源码...

    mule -esb 源码

    这两个DTD文件确保了配置文件的正确性,帮助开发者理解如何配置Mule应用。 `security.policy`文件是Java安全策略的配置,用于控制Mule ESB在执行过程中对系统资源的访问权限。通过这个文件,我们可以限制Mule的某些...

    mule文档详解 mule

    Mule ESB使用XML或图形化的Mule Studio进行配置。开发者可以创建数据流,定义消息如何在各个服务之间流动,包括数据转换、错误处理和流控制。Mule的工作流程通常包括消息的接收、转换、路由和发送。 **5. 安全性** ...

    mule使用SOAP工件发布和消费web Service的简单例子

    总结来说,"mule使用SOAP工件发布和消费web Service的简单例子"是关于利用Mule ESB创建和使用SOAP服务的一个实践教程。通过"hello-ws"示例,我们可以深入理解SOAP服务的生命周期,从定义WSDL到编写服务逻辑,再到...

    Mule源码下载,编译成eclipse项目,发布代码

    Arguments标签中,Program arguments中填入-config配置文件路径,如-config/home/shin/mule-3.x/examples/echo/src/main/app/mule-config.xml(这里使用Mule的echo例子来测试)。点击Apply后点击Debug运行。 测试...

    Mule通过HTTP连接并传参给webService例子

    Mule ESB 使用一种称为“流动”(Flows)的机制来处理和路由消息。流动定义了事件处理的顺序,包括接收、转换、处理和发送数据的各个步骤。在我们的例子中,我们将创建一个流动,用于发起HTTP请求并传递参数给web...

    Mule ESB手册-中文版

    这部分通过具体例子介绍了如何利用Mule Studio创建项目,包括基于模板创建项目和理解预建的示例项目,如Echo例子、OrderDiscounter例子和OrderFulfillment例子。这些示例有助于用户快速理解和掌握Mule ESB在实际场景...

    Mule ESB Studio 3.3中文使用手册(官方翻译)

    Mule ESB Studio 3.3 中文使用手册(官方翻译) Mule ESB Studio 3.3 是一款功能强大且灵活的集成平台,旨在帮助开发者快速构建、部署和管理企业级集成解决方案。该手册旨在指导用户如何安装、配置和使用 Mule ESB ...

    mule开发环境搭建和部署

    "Mule开发环境搭建和部署" Mule是当前流行的企业服务总线(Enterprise Service Bus, ESB),它提供了一个灵活、可扩展、高性能的集成平台。构建Mule开发环境是Mule应用程序的基础,以下将对Mule开发环境的搭建和...

    mule esb cookbook 的所有例子代码

    《Mule ESB Cookbook》是一本专注于Mule ESB实用技术的书籍,旨在帮助开发者深入理解和应用Mule ESB这一企业服务总线(Enterprise Service Bus)平台。这本书提供了丰富的示例代码,帮助读者掌握Mule ESB的核心功能...

    mule web service exsample

    在这个示例中,我们将深入探讨如何使用Mule来发布Web服务,这是一种允许不同系统间交换数据的有效方式。 1. **Mule基础知识** Mule 是一个开源的企业级服务总线,它支持多种协议和数据格式,如HTTP、JMS、FTP等。...

Global site tag (gtag.js) - Google Analytics