MULE学习笔记_第1页
MULE学习笔记_第2页
MULE学习笔记_第3页
MULE学习笔记_第4页
MULE学习笔记_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Mule学习笔记作者:郑先全1.原理Mule介绍架构MuleManagerIIcGGorwinwSpring/Pim/Prxi怎LrfecydeAdapterErtrypointResdverMuleMood(SEUA)TriicLufiMw甘酢iNdltfljalionMar?acerIMu电Tidihfxjrl核心概念请参考ArchitectureGuid»repository如果想保持新鲜,访问他们的CVS是最好的办法。cvs-d:/scm/mulelogin(nopassword)cvs-d:/scm/mulecomule注意:从2006年4月14日开始,不再使用cvs,而采

2、用svn,路径如下:有自己的IDE:Download:Eclipseupdatesite:使用Mule的安装我的JDK为1.4.2_05。下载后,解压缩,并设置MULE_HOME为解压缩目录测试:提供的echo例子程序是个比较好的测试工具,放在MULE_HOME%samplesecho下,cmd并切换到改目录的bin下,执行,即可看到如下窗口:恭喜,说明安装成功。Tip:事实上,在我的环境中会提示一个关于缺少一个sax文件的错误,郁闷,通过到sax王张并下载后,把里面的解压缩到%MULE_HOME%lib下,可以解决该问题。echo例子分析参考这个地址()的介绍,应该会有一个比较好的开始过程图

3、示FUuteSarver描述为:通过两种方式接入(红色标识):一为,另一为Soap(http)方式;每种接入都可以通过接入器(Connector)经过NMR路由转发后,进行输出,目前通过两种方式输出:一为,另一为Soap(http)方式可以通过Mule提供的工具生成配置图,如下:MULL-CHCSAMFLLISASIMPLECOMPONENTEXAWP_ETHATOEM口5T=!的SHOWT'jEXPOSEACOMPC'NENTI7UJ1F_ETRAN&P:'FTTS31HEELH-<JF'jCCVIkuHEMIAtAVEBSERJEHlI1HLF

4、OU即YGUHL-HHP:mjOCALHOSTfiaei/SEFMCE&ECHDUWQ7MEHICD-CCHG4FARAK>ISTHEREAINECHa?hfttRjTwmt詹solwaiesecr-&f*v-cirs,cam相关代码(TheEchoService)TheechoServiceisaPOJOthatimplementsanEchoServiceinterface-publicinterfaceEchoServicepublicStringecho(Stringecho);JMW .transformernHiringCamnUnr(-' Lhlid

5、ilEf j幅住1晴元Irvpm GomwclorU卜旧旧f学监 semjHiielChitChatUMOThe implementation the POJO to be managed by Mule) looks like -package class EchoComponent extends LogComponent implements EchoService public String echo(String echo) return echo;配置和说明<xml version="" encoding="UTF-8"><

6、!DOCTYPE mule-configuration PUBLIC "-旧l挛。白a/口剧/eriLdhaner nbocriEfTranstcrniKrTMTnc Sm ngTM hTfiSiniig" MtdlEjkpc:',out*in - 口网 和 we rniufs '岬。晔 hullo ChfGhal*r>NameStringToChatStHHl 口 RnsRiChirChinJMD>|<Hng miJtel samp b筝 Iwllo ChfChaler |GreeterUMOTransformer :StringToNa

7、meStringEri your Marrii: *n则修稼珅睥叮旧山2七,门>广"节;谪等网事n in' r -"ijncfTransFcrTrs =*El:rwigTaNb3rne!3birigr MChdEniJj-J n :把 hatteri ' i ik-iiiG?ili,. Mr = "nrg rnuk:.rimpiEii he lln CaTDrcri arr* l j m riI S:rsH'irn'W 3ywE h)Please refer to the Configuration Guide for a f

8、ull description of all the parameters. -><mule-descriptorname="GreeterUMO"implementation"<inbound-router>vendpointaddress=""transformers="StringToNameString"/>vendpointaddress=""transformers="StringToNameString"/></inbound-r

9、outer><outbound-router>vrouterclassName="">vendpointaddress=""/></router></outbound-router></mule-descriptor>vmule-descriptorname="ChitChatUMO"implementation"<inbound-router>vendpointaddress=""transformers="Name

10、StringToChatString"/></inbound-router>v/mule-descriptor>Tips:endpoint的address并没有实际的意义,但由于在整个Mule实例里面必须唯一,故可以理解为命名空间Transformer必须继承AbstractTransformer,主要实现doTransform接口方法loanbroker介绍异步实现:Credite«0g叩Respenwepvnvfnwup4viLgnd面旧2I同步实现:配置图请,+<口FEltpnEnlhwFli-«JH中tnd曹iiiIifi|l

11、uttrijrdfd,taif'Mhniirrflrirtr1,efnlerailfq(ubuiKlBlili.Rj«.pN<iUI"Tl0Oj"Whl|EI0WPH*BriN-lvgnrfilipAnhwBgrt-BemWMmWwnpiM、加4UIWS1lrv*EWrkTlWlTflmttaqiwplialaarvsvkaiBilkeEElMT|ii|«6*产liuMnh|13fgQHHIaqnplflapnfit-Hlafhbra<MStank1巾。卜曰(14即萨»npMs14ntEMfiW>MWDfqnpiKiJ

12、恒金m且1lig.R'lJlfdW?町事甘白中唱3L3niq.?J#fYA例miH心耳科小叫回中EUL4ylenfMorpmJi-uttiiImJuntrclijH-riurnEjuah'liElwKSWA±L*J*K。M务iNWM口UNS«*LrThFI-JJiRfl-frFPFjQUwFLF曰miFDnhFRiTFFPfflF门日日门口医FATTFIR"."F£AJMPUE.列用WFucn*n:HD-rr|Ktrtnwiw»1口货旧旧*?叫hiec5*nrngiw*t$MLCElhEEEJbOHC.UFJiEhTI

13、BW/»1f£DFRilkThEL匚*&FJ'.EF口:nFQXEF/类图jpXirtersj"DoQulCr导di血in门卬:Sept8Lae口iMce_rl,*leICieJtStEii'e(i%liivl).iti划6Kli'HmgLsrarni第nc用-3TiCiiKlLTafte(custzmsrCLfrlcnsr'iCredriPaiieC1reo运!jeucp'Swvjc已77I-sncLoantirtfkei【口elautLendFiSeriiic-3口e|T=L,二q二cq.a:l:二fudLnqi

14、:上ryFcluai缶+丁工1=5,|3flaXUrsqUsrtjJ-staterg-0LyrRnquet) =rBnviij<±eReEp*2ir0 Mivwicl.0 3uo».L: er juffi*.c i?nra*inc 口皿打。ir|ncRSUt 45irt4上分口:Log=Latrwc:nr口血四一融二值k。14%扯EDderLIS:1m把遍日HiMLLiOt茅B可这1、口白+内坦1*1回回?邮力11出印11。木曲滴2171必改:山酎十yari|q«ETHp:nljmmciEUinmi口?广中.;u:3iDrwrtwuIrirgm5+M小4M6

15、*用sw®Fe*啸词llinnfcr.=FeiasnM止TH。StringJie«llBar|.ijflrerbrt衿旗卡弗”怕ifm'二UuHe/1"1酣不二«讯耐期氏相曰%阳广>yftri*5IHngSfrlnaCursltmrjTglcr郡厂.晒,钟叫i:/IrtjTefNatF。身1">3"被n妙回的曲江4巾帖>oid-g才号sr。ri1+3fit5sri53n,irt|,世Id一,irfniw”:41aitr-LqLE'Firlriri/rri、【iITeIrfins可-EMM*"

16、?'SlTIEtil轴.iiLKiriy=MSadQuu悔艮次幅型“0TXF5ir:ifinr/T”1*£3:CreJt5ccire(credtS.crt.irtjvodSAi-njlhJri懂*hc1口,小门山小的:fsebiit山nrgihmi管心UdlaC|dLu日日E-七nt由切就m0edl±Q+iFt划ecKHBsvLcr喘忤m大生&1田用q包10gmEFrter-i;rRirt<*l-erc&r=i"der日油K值年口明鸵UtikRe#把发U袁omq/刖*g匐K>sr将国,大l8画网的ng。ThnM:质伸132|值曰

17、stnra,新常口代strraizdCtsEiidiTde=oiiiarJ-h'ICDesErprcrJvariMl氏向岭m2;刘1呷tsj-tflartiftsmethenkPhme£1trgXvad$EPrnua:Fnetid£fiF<>rd(mdf»:iri-tlrig)/od旧货吐=就”;WM1E|,带mp-tne:就Rdprin雨男白比由叨.MdaLDanCrnflijrHPfrru-lnfflis(j步.。於wAir*jLiM1】-d«m:hi.月口Bntnuii-LgwiopngunirjLaJinEwje曰*on?&q

18、uot;irgjHvfti-JFo«#02”we-ateftecfjM-:!J-renlfeqosilaoWarohmUmjJTil:竺正已/K二eNurTTN0HTEajr.Tm<|iE"lFrfLQIFl卅一切面1氏重丁4t$cguebi8pal(rMfnberf.h£,eijidpo«v1:Slngi):皿曰H6MK战Sfh优nWtWEH,明小Ci旃国或L川情白fCng加同工/O.diKiEfidlindEmREqiE-ststnurTtiER'irrl!iynchrEriDu.xbmlieani)void淑士正"1七小i:

19、E第猴心|曲gJifiLoiRiauiHetS:时由小.稻Ft配置文件详细分析<mule-configurationid="Loan_broker_Sync"version=""><!一定义EndPoint<endpoint-identifiers><endpoint-identifiername="LoanBrokerRequests"value=""/><endpoint-identifiername="LoanBrokerQuotes"val

20、ue=""/><endpoint-identifiername="CreditAgency"value="axis:"/><endpoint-identifiername="CreditAgencyReceiver"value="axis:"/><endpoint-identifiername="LenderService"value=""/><!-Themethodparameterforthebanken

21、dpointsisaddedprogrammitcallywhenthebankobjectsarecreated-><endpoint-identifiername="Bank1"value="axis:"/><endpoint-identifiername="Bank2"value="axis:"/><endpoint-identifiername="Bank3"value="axis:"/><endpoint-identi

22、fiername="Bank4"value="axis:"/><endpoint-identifiername="Bank5"value="axis:"/></endpoint-identifiers><!-LoanBrokerDescriptor<mule-descriptorname="LoanBroker"implementation1"/说明这个类来发出请求而已,并不需要实现特殊接口<inbound-router>vendp

23、ointaddress="LoanBrokerRequests"/></inbound-router><outbound-router>/LoanBrokerDescriptor有两个outbound,一个去访问信用代理,一个去获取贷款方列表vrouterclassName="">vendpointaddress="CreditAgency"/>vfilterexpectedType=""className=""/>/信用代理,注意使用了filte

24、r,是为了确保CreditAgency的EndPoint对应的CreditAgencyService具有合适的参数</router>vrouterclassName="">vendpointaddress="LenderService"/>vfilterexpectedType=""className=""/>/贷款方代理,通过filter,使得只有类型为BankQuoteRequest的请求去访问v/router><response-routertimeout="

25、;100000">/响应路由,通过聚合进行<endpointaddress="LoanBrokerQuotes"/><routerclassName=""/></response-router></mule-descriptor><mule-descriptorname="CreditAgencyService"/默认获取用户信用信息的服务inboundEndpoint="CreditAgencyReceiver"implementation&q

26、uot;</mule-descriptor>vmule-descriptorname="LenderService"/借贷方服务inboundEndpoint="LenderService"implementation"<outbound-router>vrouterclassName=""><reply-toaddress="LoanBrokerQuotes"/>/reply-to描述了反馈的端点vfilterexpression="recipient

27、s!=null"className=""/>/这个过滤器的用处在于说明只有recipients!=null的情况下,才执行必要的逻辑</router></outbound-router></mule-descriptor><!一下面为几个银行的inbound配置,主要描述几个不同银行的输入vmule-descriptorname="Bank1"inboundEndpoint="Bank1"implementation"<mule-descriptorname=&

28、quot;Bank2'inboundEndpoint="Bank2"implementation"</mule-descriptor>vmule-descriptorname="Bank3'inboundEndpoint="Bank3"implementation"</mule-descriptor>vmule-descriptorname="Bank4'inboundEndpoint="Bank4"implementation"<

29、/mule-descriptor>vmule-descriptorname="Bank5'inboundEndpoint="Bank5"implementation"</mule-descriptor>v/mule-configuration>通过ActiveMQ进行上述例子是通过构造webservice进行的,很容易通过ActiveMQ来做,主要的调整只要重新定义Enpoint即可。具体配置文件修改一下即可,如下:<xmlversion=""encoding="UTF-8"&

30、gt;<!DOCTYPEmule-configurationPUBLIC"-/SymphonySoft/DTDmule-configurationXML/EN"""><mule-configurationid="Loan_broker_ASync"version=""><mule-environment-propertiessynchronous="false"serverUrl=""remoteSync="false"/&g

31、t;<!-TestingwithActiveMq-><!-<connectorname="jmsConnector"className=""><properties><propertyname="connectionFactoryJndiName"value="ConnectionFactory"/><propertyname="jndiInitialFactory"value=""/><property

32、name="specification"value=""/><mapname="connectionFactoryProperties"><propertyname="brokerURL"value=""/></map></properties></connector>-><connectorname="jmsConnector"className=""><prope

33、rties><propertyname="specification"value=""/><propertyname="connectionFactoryJndiName"value="ConnectionFactory"/><propertyname="jndiInitialFactory"value=""/><mapname="connectionFactoryProperties"><pro

34、pertyname="brokerURL"value=""/><propertyname="brokerXmlConfig"value="classpath:/"/></map></properties></connector><!-testingwithOpenJms-><!-<connectorname="jmsConnector"className="">-><!-<p

35、roperties>-><!-<propertyname="connectionFactoryJndiName"value="JmsQueueConnectionFactory"/>-><!-<propertyname="jndiInitialFactory"value=""/>-><!-<propertyname="jndiProviderUrl"value=""/>-><!-<

36、/properties>-><!-</connector>-><endpoint-identifiers><endpoint-identifiername="LoanBrokerRequests"value=""/><endpoint-identifiername="LoanBrokerQuotes"value=""/><endpoint-identifiername="CreditAgency"value="

37、;"/><endpoint-identifiername="CreditAgencyReceiver"value=""/><endpoint-identifiername="LenderService"value=""/><endpoint-identifiername="Bank1"value=""/><endpoint-identifiername="Bank2"value="&quo

38、t;/><endpoint-identifiername="Bank3"value=""/><endpoint-identifiername="Bank4"value=""/><endpoint-identifiername="Bank5"value=""/></endpoint-identifiers><mule-descriptorname="LoanBroker"<endpointad

39、dress="LoanBrokerRequests"/></inbound-router><outbound-router><routerclassName=""><endpointaddress="CreditAgency"/><filterexpectedType=""className=""/></router><routerclassName=""><endpointaddress="LenderService"/><filterexpectedType=""className=""/&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论