`
ihuashao
  • 浏览: 4722812 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

在xml的汪洋中遨游之mule篇

阅读更多

mule号称开源ESB的最好实现,研究mule也有段时间了, 在“浩如烟海”的xml配置中,保持清醒的头脑确实不容易。
作为学习笔记之一,记录一下一个mule简单应用的实现。

需求:给指定的email地址发送邮件.

一:基本实现:

1: 实现命令行输入发送email:
为了能在命令行接受输入, 需要配置一个输入输出连接器:

2:配置一个UMO,把输入的内容放入一个队列:

outbound节点的配置, 把输入的内容(String) 路由到一个叫“content”的queue中, 此queue为jvm中的内存队列。
3:配置一个UMO,实现发送email:

其中inbound的配置为contentUMO的outbound, contentUMO和EmailBridge这个两个UMO通过名称为“content”的queue连接起来, 实现通讯。EmailBridge接收到输入后, 会依次通过ContentToEmail, StringToMimeMessage两个transformer进行内容的转换。
BTW:为了在mule中使用smtp, 需要在xml的namespace中声明:

xmlns:smtps="http://www.mulesource.org/schema/mule/smtps/2.1"

mule有很多对于具体协议的transport实现,每一个transport的实现作为一个jar包存在(比如mule-transport-email-2.1.2.jar), 在jar中的META-INF/spring.schemas文件中, 写明了xsd文件的对应关系, META-INF/sping.handers配置了相关命名空间的handle class, 可以据此在mule的配置文件中声明命名空间.
完整的mule配置文件如下:

相关class如下:
自定义消息转换器:

自定义smtp连接器(smtp connector):

运行此程序, 根据提示, 在命令行输入:

二: 升级:增加一个component.

修改UMO:EmailBridge配置, 增加一个component:

注意到增加了一个component, 接受命令行的输入(String), 产生一个EmailModel的对象.之后,这个EmailModel对象进入outbound, 并经过
emailModelToString, StringToMimeMessag的处理, 最后发送出去.
其中emailModelToString是新添加的一个自定义transformer:

相关class如下:
EmailModel.java:

EmailComponent.java
需要说明的是:
mule默认采用方法参数类型匹配策略, 所以, 如果有String类型的输入, foo方法自动调用, 也可以详细指定调用哪个方法,比如以下配置明确指定调用component的foo方法:

EmailModelToString.java

三:继续升级:不满足于在命令行输入, 需要在浏览器输入, 也就是发布一个http接口。
修改contentUMO如下:

通过http请求得到输入参数, 经过HttpRequestToString的转换, 放入“content” queue, 为了和content中的数据格式匹配,在浏览器中按如下方式输入:
http://localhost:9999?email=lichunlei@mycompt.com.cn,hello
新增了一个class:
HttpRequestToString.java

使用心得:除了xml,还是xml. 如果没有图形化的配置工具, 使用起来还是很麻烦的。对于mule的开发, 主要做component和transfer的开发.至于其他好处, 有待进一步学习。


分享到:
评论

相关推荐

    MULE开发实例1---并行调用多个webservice接口

    在IT行业中,Mule ESB(企业服务总线)是一种流行的集成平台,它允许开发者连接、管理和集成不同的系统、应用程序和服务。在这个特定的实例中,我们关注的是如何使用Mule ESB并行调用多个Web服务接口。这个主题对于...

    简单的tomcat中集成mule

    本篇文章将详细讲解如何在Tomcat服务器中集成Mule ESB,这是一个轻量级且强大的集成平台。 首先,我们需要理解Mule ESB的角色。Mule ESB是一种开源的ESB,它允许开发者通过连接不同系统、应用程序和服务来实现数据...

    mule文档详解 mule

    - **数据流**: 数据流定义了数据如何在Mule应用中移动,包括消息的路由、转换和处理。 - **连接器**: 连接器是Mule与外部系统交互的具体实现,如数据库连接器、文件系统连接器等。 **4. 流程配置与工作流程** Mule...

    在tomcat中部署mule项目

    在IT行业中,Mule ESB(企业服务总线)是一个流行的开源集成平台,用于构建连接应用程序和服务的系统。本文将详细介绍如何在Apache Tomcat服务器上部署Mule项目,这是一个常见的需求,因为Tomcat是一个广泛使用的轻...

    mule开发环境搭建和部署

    在config目录下新增一个sayHello-mule-config.xml配置文件,该文件用于定义Mule项目的配置信息。该文件的内容包括Mule项目的命名空间、SchemaLocation等信息。 四、Mule项目的配置和部署 在Mule项目中,需要配置...

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

    用户可以通过完成以下步骤来创建它们:找到 Studio 菜单 > File > Open File >,然后在 Open File 的窗口中找到 Studio 安装目录,例如:C:\MuleStudio > Examples > Spell Checker,最后创建两个分别以 InXML 和 ...

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

    在提供的博客链接中,你可能会找到"hello-ws"项目的完整源代码,包括Mule配置XML和可能的Java实现。"工具"标签提示我们,这里可能讨论了使用Anypoint Studio或其他开发工具进行开发的步骤。 总结来说,"mule使用...

    mule -esb 源码

    在Mule中,日志系统是至关重要的,因为它提供了一种跟踪和调试应用运行时问题的手段。通常,Mule ESB使用log4j或Logback作为日志框架,`log4j.properties`文件即为该框架的配置文件,它允许我们定制日志级别、输出...

    Mule ESB手册-中文版

    这部分介绍了如何在Mule Studio中配置和使用云服务连接器,比如Salesforce云连接器和Twitter云连接器,它们用于连接云计算平台上的服务。 11. 全局配置 全局配置部分讲解了如何创建和管理全局元素,以及如何配置云...

    MuleESB_3.0_中文教程

    1. **安装与配置**:教程将引导你完成Mule ESB 3.0的安装,以及如何在Mule Studio中创建新项目。 2. **创建第一个Mule应用**:从简单的HTTP监听器和响应者开始,了解如何定义流和组件。 3. **连接器使用**:学习...

    mule web service exsample

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

    mule IDE (mule ESB)

    Mule ESB 是一个轻量级的基于java的企业服务总线和集成平台, 使得开发人员可以快速,简单的连接多个应用, 使得它们可以交换数据。 Mule ESB 容易集成现有异构系统,包括:JMS, Web Services, JDBC, HTTP, 等. ESB...

    MULE ESB-4.1企业版运行环境

    在描述中提到,“MULE ESB-4.1企业版运行环境”意味着这是一个完整的、预配置的环境,用户可以直接在其上运行由AnyPoint Studio开发的Mule应用。AnyPoint Studio是MuleSoft提供的一个集成开发环境(IDE),用于创建...

    MULE ESB-4.1社区办运行环境

    在MULE ESB-4.1社区版中,主要包含以下几个关键组件和概念: 1. **AnyPoint Studio**: AnyPoint Studio是Mulesoft提供的集成开发环境(IDE),基于Eclipse,用于构建、测试和调试Mule应用程序。它提供了图形化的...

    MuleESB3.0中文教程

    通过以上内容,可以看出Mule ESB 3.0不仅在技术层面具有很高的成熟度,而且在实际应用中也得到了广泛的认可。无论是对于初学者还是高级用户,Mule ESB 3.0都提供了一个强大且灵活的企业服务总线解决方案。

    mule-xml-module

    【mule-xml-module】是基于Java开发的一个模块,主要用于在Mule ESB(企业服务总线)中处理XML相关的数据和操作。Mule ESB是一个开源的企业级集成平台,它允许开发者通过简单的配置来连接各种系统、应用和服务,实现...

    Mule 实现路由分发

    在IT行业中,Mule是一个强大的企业服务总线(ESB)和集成平台,它允许开发者构建和部署可扩展的应用程序和服务。"Mule实现路由分发"这一主题涉及到Mule如何处理消息的传递和定向,这在分布式系统和微服务架构中是至...

    Mule与MQ集成

    - 在Mule配置文件(如`mule-config.xml`)中定义JMS连接工厂。 - 创建JMS收发消息的端点(Endpoints),用于消费和发布消息。 - 编写Mule流程,指定何时和如何发送和接收消息。 - 配置ActiveMQ的URL、用户名和密码等...

Global site tag (gtag.js) - Google Analytics