1、Mule学习笔记作者:郑先全msn:1. 原理请参照Using JBI for Service-Oriented Integration (SOI)2. Mule简介2.1. 架构2.2. 核心概念请参照Architecture Guid2.3. repository如果想保持新鲜,访问她们CVS是最佳办法。cvs -d :pserver:/scm/mule login(no password)cvs -d :pserver:/scm/mule co mule注意:从4月14日开始,不再使用cvs,而采用svn,途径如下:2.4. IDE有自己IDE:Download: Eclipse upd
2、ate site: 3. Mule使用3.1. Mule安装我JDK为1.4.2_05。下载后,解压缩,并设立MULE_HOME为解压缩目录测试:提供echo例子程序是个比较好测试工具,放在%MULE_HOME%samplesecho下,cmd并切换到改目录bin下,执行mule-echo.bat,即可看到如下窗口:恭喜,阐明安装成功。Tip:事实上,在我环境中会提示一种关于缺少一种sax文献错误,郁闷,通过到sax王张并下载sax2r3.zip后,把里面xml-apis.jar解压缩到%MULE_HOME%lib下,可以解决该问题。3.2. echo例子分析参照这个地址(+Example)简
3、介,应当会有一种比较好开始。3.2.1. 过程图示描述为:1、 通过两种方式接入(红色标记):一为System.in,另一为Soap(http)方式;2、 每种接入都可以通过接入器(Connector)通过NMR路由转发后,进行输出,当前通过两种方式输出:一为System.out,另一为Soap(http)方式可以通过Mule提供工具生成配备图,如下:3.2.2. 有关代码(The Echo Service)The echo Service is a POJO that implements an EchoService interface -public interface EchoServ
4、ice public String echo(String echo);The implementation (i.e the POJO to be managed by Mule) looks like -package ponents.simple;public class EchoComponent extends LogComponent implements EchoService public String echo(String echo) return echo; 3.2.3. 配备和阐明!DOCTYPE mule-configuration PUBLIC -/Symphony
5、Soft /DTD mule-configuration XML V1.0/EN 描述 3.3. Webapp例子分析这个例子其实是对原有几种例子在webapp集成,通过使用MuleClient进行基于编码调用。Tips:1、 可以通过干预web.xml,逐个加载需要揣摩例子,便于分析;2、 开始时,使用默认加载方式。3.3.1. echo例子略3.3.2. Hello例子3.3.2.1. 简介本例子重要用于演示两个transformer、两个UMO之间信息转换和事件交互。Transformer:StringToNameStringTransformer:NameStringToChatStr
6、ingGreeterUMOChitChatUMO3.3.2.2. 代码分析几种java文献,阐明如下:POJO/javabean:NameString.javaChatString.javaSERVICE:Greeter.javaChitChatter.javaTransformer:HttpRequestToString.javaNameStringToChatString.javaStringToNameString.javaChatStringToString.java3.3.2.3. 配备Web.xml /WEB-INF/mule-config.xml, /WEB-INF/mule-e
7、cho-config.xml, /WEB-INF/mule-hello-config.xml Mule-hello-config.xml !-转换器 Tips:1、 endpoint address并没有实际意义,但由于在整个Mule实例里面必要唯一,故可以理解为命名空间2、 Transformer必要继承AbstractTransformer,重要实现doTransform接口办法3.3.3. loanbroker3.3.3.1. 简介异步实现:同步实现:3.3.3.2. 配备图请参照:+Broker+Example3.3.3.3. 类图3.3.3.4. 配备文献详细分析 !定义EndPoi
8、nt !- LoanBroker Descriptor /阐明这个类来发出祈求而已,并不需要实现特殊接口 / LoanBroker Descriptor有两个outbound,一种去访问信用代理,一种去获取贷款方列表 /信用代理,注意使用了filter,是为了保证CreditAgencyEndPoint相应CreditAgencyService具备适当参数 /贷款方代理,通过filter,使得只有类型为BankQuoteRequest祈求去访问 /响应路由,通过聚合进行 /reply-to描述了反馈端点 /这个过滤器用处在于阐明只有recipients!=null状况下,才执行必要逻辑 !下面
9、为几种银行inbound配备,重要描述几种不同银行输入 3.3.3.5. 通过ActiveMQ进行上述例子是通过Axis1.3构造webservice进行,很容易通过ActiveMQ来做,重要调节只要重新定义Enpoint即可。详细配备文献修改一下即可,如下:!DOCTYPE mule-configuration PUBLIC -/SymphonySoft /DTD mule-configuration XML V1.0/EN !- - !- !- !- !- !- !- !- mule-descriptor name=Bank5 inboundEndpoint=Bank5 implementation=org.mule.samples.l