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

mule2.2.x架构(三)示例学习hello

    博客分类:
  • SOA
XML 
阅读更多
mule2.2.x架构(三)示例学习hello

所有的示例文档
http://www.mulesoft.org/display/MULE2INTRO/Examples

本例参考示例地址
http://www.mulesoft.org/display/MULE2INTRO/Hello+World+Example

2.简单示例hello
2.1.接受标准输入驱动
主要分析了配置文件hello-config.xml
<!-- 提示语言,从hello-messages_zh_CN.properties中提取第三个元素 -->
    <stdio:connector name="SystemStreamConnector"
        promptMessageCode="3"
        resourceBundle="messages.hello-messages"
        messageDelayTime="1000"/>
<!-- 装换的工具类 -->
    <custom-transformer name="StdinToNameString" class="com.sillycat.easymule.hello.transformer.StdinToNameString"/>
    <custom-transformer name="NameStringToChatString" class="com.sillycat.easymule.hello.transformer.NameStringToChatString"/>
    <custom-transformer name="ChatStringToString" class="com.sillycat.easymule.hello.transformer.ChatStringToString"/>
    <custom-transformer name="ExceptionToString" class="com.sillycat.easymule.hello.transformer.ExceptionToString"/>

    <model name="helloSample">
        <service name="GreeterUMO">
            <!-- 接受系统标准输入 -->
   <inbound>
                <stdio:inbound-endpoint system="IN" transformer-refs="StdinToNameString"/>
            </inbound>
            <component class="com.sillycat.easymule.hello.service.Greeter"/>
            <outbound>
         <!-- 根据类型,返回到不同的vm,vm貌似是mule的一个memory queen -->
                <filtering-router>
                    <vm:outbound-endpoint path="chitchatter"/>
                    <payload-type-filter expectedType="com.sillycat.easymule.hello.model.NameString"/>
                </filtering-router>
                <filtering-router>
                    <vm:outbound-endpoint path="userErrorHandler"/>
                    <payload-type-filter expectedType="java.lang.Exception"/>
                </filtering-router>
            </outbound>
            <default-service-exception-strategy>
                <vm:outbound-endpoint path="systemErrorHandler"/>
            </default-service-exception-strategy>
        </service>
        <!-- 正常的接受chitchatter的vm分支 -->
        <service name="ChitChatUMO">
            <inbound>
                <vm:inbound-endpoint path="chitchatter" transformer-refs="NameStringToChatString"/>
            </inbound>
            <component class="com.sillycat.easymule.hello.service.ChitChatter"/>
            <!-- 输出到控制台 -->
   <outbound>
                <pass-through-router>
                    <stdio:outbound-endpoint system="OUT" transformer-refs="ChatStringToString" />
                </pass-through-router>
            </outbound>
        </service>
    <!-- handler一些出错信息 -->
        <service name="UserErrorHandler">
            <inbound>
                <vm:inbound-endpoint path="userErrorHandler" transformer-refs="ExceptionToString"/>
            </inbound>
            <outbound>
                <pass-through-router>
                    <stdio:outbound-endpoint system="OUT"/>
                </pass-through-router>
            </outbound>
        </service>
        <service name="SystemErrorHandler">
            <inbound>
                <vm:inbound-endpoint path="systemErrorHandler"/>
            </inbound>
            <outbound>
                <pass-through-router>
                    <stdio:outbound-endpoint system="ERR"/>
                </pass-through-router>
            </outbound>
        </service>       
    </model>
2.2接受http请求驱动
主要分析了配置文件hello-http-config.xml,没有什么大的区别,主要是区分了第一个inbound,另外新增了transformer
<inbound>
<inbound-endpoint address="http://localhost:8888"
    transformer-refs="HttpRequestToNameString" synchronous="true">
   <not-filter>
    <wildcard-filter pattern="/favicon.ico" />
   </not-filter>
</inbound-endpoint>
</inbound>
以上是接受http请求的inbound,接受请求
http://localhost:8888?name=Ross
为啥是name=Ross
com.sillycat.easymule.hello.transformer.HttpRequestToNameString里面的NAME_REQUEST_PARAMETER就写死了再url里面去寻找
新增的transformer
<custom-transformer name="NameStringToChatString"
   class="com.sillycat.easymule.hello.transformer.NameStringToChatString" />
<custom-transformer name="ChatStringToString"
   class="com.sillycat.easymule.hello.transformer.ChatStringToString" />
<custom-transformer name="HttpRequestToNameString"
   class="com.sillycat.easymule.hello.transformer.HttpRequestToNameString" />
<custom-transformer name="ExceptionToString"
   class="com.sillycat.easymule.hello.transformer.ExceptionToString" />
<message-properties-transformer name="PlainTextResponseTransformer">
<add-message-property key="Content-Type" value="text/plain" />
</message-properties-transformer>

简单的测试完毕,基本上是按照英文文档上拷贝了一次。等学习完所有的example,再考虑如何和自己的系统结合。
分享到:
评论

相关推荐

    Mule2.2 BookStore例子学习

    《Mule2.2 BookStore例子学习》 Mule2.2是一款强大的企业级集成平台,主要用于构建应用程序之间的数据和流程集成。在这个BookStore的例子中,我们将深入理解Mule ESB(Enterprise Service Bus)的核心概念和工作...

    Mule 2.x Getting Started Guider中文

    #### 三、Mule 架构 Mule 的架构设计考虑到了如何高效处理数据和消息,下面是一些关键点: - **SOA 的概念**: Mule 基于 SOA 思想构建,这意味着服务是独立的单元,彼此之间可以协作,但又可以独立运行。这有助于...

    GOMPlayer视频播放器x下载V2.2.56.5181绿色中文免费版

    GomPlayer类似于KMplayer,同样也是一款来自韩国播放器,界面精美、功能全面。多媒体播放器GOMPlayer... 以‘查找解码’功能来支持所有视频的播放,在BT或e-mule等P2P网站中下载的影片会经常不能播放,GOM Player以独

    Mule讲解.docx

    Mule讲解.docxMule讲解.docx

    最高级的多媒体播放工具(GOM Media Player) v2.2.64.5212 简体中文版.zip

    2) 支持BT或e-mule等P2P站点中接收到损坏的文件, 因中断页传送完成的文件, 索引损坏的AVI文件的播放. 3) 想截取的视频画面可以储存为图像 (JPG, BMP)文件, 还可以通过连续截图取功能来实现把影片的场景以帧为单位, ...

    mule 学习.zip

    包含http、cxf、vm、sap、activeMq、ftp、file、poll、Smtp、attachment、melExpression、Java、template节点的使用示例等。

    elastic-apm-mule3-agent:适用于Mule 3.x的Elastic APM代理

    弹性APM Mule3代理介绍此插件允许使用Elastic APM监视Mule 3.x组件的应用程序性能。 它提供了一种非侵入性的方式来度量和基准化Mule中的各个流程和步骤,并添加了对Mule组件的应用程序性能监控,以与日志,指标和...

    Mule V.S ServiceMix

    然而,Mule的内部API并未基于JBI标准,而是拥有自己独特的架构设计,这为开发人员提供了更多的自由度和创新空间。 相比之下,ServiceMix的核心在于其JBI基础。作为一款遵循JBI标准的集成平台,ServiceMix旨在提供一...

    mule web service exsample

    【Mule Web Service 示例】 Mule ESB(Enterprise Service Bus)是一种强大的集成平台,它允许开发者轻松地构建和部署分布式应用程序。在这个示例中,我们将深入探讨如何使用Mule来发布Web服务,这是一种允许不同...

    EIP经典案例ESB实践之Mule实现.rar_eip_esb_mule_mule esb

    在“EIP经典案例ESB实践之Mule实现.doc”文档中,你将深入了解到如何使用Mule ESB来实施Load Broker方案,包括具体的配置步骤、示例代码以及最佳实践。通过学习和实践,你可以掌握如何利用Mule ESB优化企业的服务...

    ESB解决方案-mule分享.docx

    ESB解决方案-mule分享 ESB(Enterprise Service Bus)是传统中间件技术与 XML、WEB 服务等技术结合的产物。它提供了网络中最基本的服务总线功能,用于集成多个异构系统,实现系统之间的数据交换和业务流程集成。 ...

    mule_examples.rar_mule_mule 开发_mule-2.2.1-src

    《Mule ESB实战:基于mule-2.2.1-src的开发示例解析》 Mule ESB,作为一款强大的企业服务总线(Enterprise Service Bus),在集成和连接不同系统方面展现了卓越的能力。本篇文章将围绕"mule_examples.rar_mule_mule...

    Manning.Mule.in.Action.2nd.Edition.Feb.2014 及 源码

    附带的源码是书中示例的实现,读者可以下载并跟随书中步骤操作,这将极大地增强学习体验,加深对Mule ESB工作原理的理解。源码的分析和实践将帮助读者掌握实际开发中的技巧和最佳实践。 Mule ESB的强大之处在于其...

    Mule in Action

    The book closes with a set of chapterson the nuts and bolts of working with Mule. Readers can take Mule farther bylearning techniques for testing, performance tuning, BPM orchestration, andeven a ...

    Mule3.0开发教程.pdf

    org.mule.module.management.agent.JmxAgent: Registered Endpoint Service with name: Mule.04cd6ac8-9c81-11e0-95b7-8bd1ea0dc252:type=Endpoint,service="HelloWorld",connector=connector.http.mule.default,...

    ESB解决方案-mule分享.pdf

    【企业服务总线(ESB)】是现代企业IT架构中的关键组成部分,它解决了企业内部“信息孤岛”问题,实现了系统间的高效集成。ESB的出现源于企业对信息共享、系统互操作性和软件重用的迫切需求。随着业务规模的扩大和...

Global site tag (gtag.js) - Google Analytics