MULE學習筆記_第1頁
MULE學習筆記_第2頁
MULE學習筆記_第3頁
MULE學習筆記_第4頁
MULE學習筆記_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Mule學習筆記作者:鄭先全1.原理Mule介紹架構(gòu)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。下載后,解壓縮,并設(shè)置MULE_HOME為解壓縮目錄測試:提供的echo例子程序是個比較好的測試工具,放在MULE_HOME%samplesecho下,cmd并切換到改目錄的bin下,執(zhí)行,即可看到如下窗口:恭喜,說明安裝成功。Tip:事實上,在我的環(huán)境中會提示一個關(guān)于缺少一個sax文件的錯誤,郁悶,通過到sax王張并下載后,把里面的解壓縮到%MULE_HOME%lib下,可以解決該問題。echo例子分析參考這個地址()的介紹,應(yīng)該會有一個比較好的開始過程圖

3、示FUuteSarver描述為:通過兩種方式接入(紅色標識):一為,另一為Soap(http)方式;每種接入都可以通過接入器(Connector)經(jīng)過NMR路由轉(zhuǎn)發(fā)后,進行輸出,目前通過兩種方式輸出:一為,另一為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相關(guān)代碼(TheEchoService)TheechoServiceisaPOJOthatimplementsanEchoServiceinterface-publicinterfaceEchoServicepublicStringecho(Stringecho);JMW .transformernHiringCamnUnr(-' Lhlid

5、ilEf j幅住1晴元Irvpm GomwclorU卜舊舊f學監(jiān) 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 - 口網(wǎng) 和 we rniufs '岬。曄 hullo ChfGhal*r>NameStringToChatStHHl 口 RnsRiChirChinJMD>|<Hng miJtel samp b箏 Iwllo ChfChaler |GreeterUMOTransformer :StringToNa

7、meStringEri your Marrii: *n則修稼珅睥叮舊山2七,門>廣"節(jié);謫等網(wǎng)事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,主要實現(xiàn)doTransform接口方法loanbroker介紹異步實現(xiàn):Credite«0g叩Respenwepvnvfnwup4viLgnd面舊2I同步實現(xiàn):配置圖請,+<口FEltpnEnlhwFli-«JH中tnd曹iiiIifi|l

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

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

13、BW/»1f£DFRilkThEL匚*&FJ'.EF口:nFQXEF/類圖jpXirtersj"DoQulCr導(dǎo)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、口白+內(nèi)坦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#把發(fā)U袁omq/刖*g匐K>sr將國,大l8畫網(wǎng)的ng。ThnM:質(zhì)伸132|值曰

17、stnra,新??诖鷖trraizdCtsEiidiTde=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戰(zhàn)Sfh優(yōu)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"/說明這個類來發(fā)出請求而已,并不需要實現(xiàn)特殊接口<inbound-router>vendp

23、ointaddress="LoanBrokerRequests"/></inbound-router><outbound-router>/LoanBrokerDescriptor有兩個outbound,一個去訪問信用代理,一個去獲取貸款方列表vrouterclassName="">vendpointaddress="CreditAgency"/>vfilterexpectedType=""className=""/>/信用代理,注意使用了filte

24、r,是為了確保CreditAgency的EndPoint對應(yīng)的CreditAgencyService具有合適的參數(shù)</router>vrouterclassName="">vendpointaddress="LenderService"/>vfilterexpectedType=""className=""/>/貸款方代理,通過filter,使得只有類型為BankQuoteRequest的請求去訪問v/router><response-routertimeout="

25、;100000">/響應(yīng)路由,通過聚合進行<endpointaddress="LoanBrokerQuotes"/><routerclassName=""/></response-router></mule-descriptor><mule-descriptorname="CreditAgencyService"/默認獲取用戶信用信息的服務(wù)inboundEndpoint="CreditAgencyReceiver"implementation&q

26、uot;</mule-descriptor>vmule-descriptorname="LenderService"/借貸方服務(wù)inboundEndpoint="LenderService"implementation"<outbound-router>vrouterclassName=""><reply-toaddress="LoanBrokerQuotes"/>/reply-to描述了反饋的端點vfilterexpression="recipient

27、s!=null"className=""/>/這個過濾器的用處在于說明只有recipients!=null的情況下,才執(zhí)行必要的邏輯</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進行上述例子是通過構(gòu)造webservice進行的,很容易通過ActiveMQ來做,主要的調(diào)整只要重新定義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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論