Mule ESB Hello实例(四).docx
MuleESBHello实例(四)这是一个坡简洁的muleesb入门实例,其中用了HoW.endpoint,transfomponent这些组件,这些组件的圮巴也是足荷洁足置.情景:1.在阅读器地址栏输入y/localhost:9090/hello-mule?name=oliver&age=20,iS0"Hellooliver,yourageis10".1.在阅读涔地址栏输入y,'localhost9090lovmue7ame=olivrSage=20,>!i'l"1.oveoliver,yourageis10".配胜文件:(tml)viewPurrK8丫1.<?xmlversion-l.e"e11coding-UTF-8M?>2<mulewins-'*:wulesoft.org/schema/«ule/coree3. x<lnsxsi三*':/w3.org2lXM1.Schema-instance4. Xfilnsispring=":/sprlngframework.org/schema/beans"5. ×nlns:«*:/三ulesoft.orgschema三ule"6. Xfllns:/muIesoft.org/scbe<amlevn,7×sizsche<a1.oction*aa8. 1/sprigfrarnework.orgschemabeans:/springfrafteu'ork.orgsche<nabeanssring-beans-3.xsd9:/11ulesoft.orgschemanulecore:/三ulesoftorg/schema/fiule/core/3.2/mule.xsd10. :/nulesoft.org/schema/nule/:/Iiulesoft.orgschema三ule/3.2/mule-.xsd11. :/11ulesoft.orgschemawulev11:/nulesoft.orgsche(11amulev三3.2/mule-v.×sd">12.13. <!-格客户端作过来的tiK传化成PerSOn对象,>14. <custom-transfor11erna11e,DataToPersonTransforfier"class*,'co11.mule.transformer.DataToPersonTrans÷orfer,7>15.16. <!-称SerViCe操作结果川HtlIl冶RW装起来>17. <custo<n-transfor11era11e三',StringToHt11lTrasformerclass*"con.muIe.transformer.StrlngToHtmlTransfor«er'7>18.19. <!设性相应内容为Sxt/html格式2.<message-properties-transfo1111ernane=,SetHtmlContentType,'overwrite三,true*>21. <add-message>propertykey三*Content-Type*value*Mtext/html">22. <!*ToncatIowerCJlSeSheaders,needtodropthisoldonetoo>23. <delete-message-propertykey',content-type'*>24. <messge-properties-transformer>25.26. <!-依据客户茹传过来的内容,运网相应的He1】。/句->27. <flowcw"hell>28. <inbound-endpointaddress-*:/localhostz990hello-mule?method-sayHello,'exchange-pattern«*request-responseM>29. transformerref三,DataToPersonTransformer*/>3.<resonse>31. <transformcrref-"StringToHtmlTransfor11er',/>32. <transfo11nerref三setHtlContentType*>33. <response>34. <inbound-endpoint>35.36. <componentclass"co11.muleponent.WelcomService*>37.38. <flow>39.40. <!-根热客户端传过来的内也诋回相映的1.OVe语句->41. <flowname=,Iove*>42. <inbound*endointaddress三*:/localhost:9090/love-mule?metbod$aylove,'exchange-pattern-*'request-response">43. <transfor11erre£«MDataToPersonTransformer*/>44. <response>45. <transfo11nerref三wStr1ngToHtmlTransforner"/>46. Ctransformcrref-"SetHtwlContentType">47. <response>48. <int>ound-endpoint>49.58. <componentclass-"co11.mleponent.WelcomService">59.60. <flow>61.62. <nle>Transformer:1. DataToperson将客户端传过来的数据转换成component所纪要Person类型(html)Vkrw6Mcop1. packagecom.mule.transformer;2.3. importorg.mule.api.MuleMessage;4. importorg.mule.api.transfOrnereTransforeierException;5i三portorg.mule.transformer.AbstractMessageTransformer;7. Ifiportcon.mule.domain.Person;8.9. publicclassDataToPersonTransformerextendsAbstractMessageTransforner(10.11. Override12. publicObjecttransforrtMes5age(MuleMessage11essage,StringOUtputEncoding)13. throwsTransfornerExceptlon(14. Stringnjrx'Nmessage.getInboundProperty(MnafieM);15. Stringage-cssage.getInborlProperty(,age");16. if(age««null)17. age三,l;18. )19.20. returnnewPerson(a11e,Integer.parselnt(age);21. 22.23)2.StringToHtmlTransformer将COmPOnent处理后返川的string类型数拉;,封装成html数据j«vdSeWPidirKOPypackagecom.mule.transformer;importorg.mule.apt.transforner.TransfonierException;importorg.mule.transformer.AbstractTransfonner;importco.mule.util.HtmlTeflplateUt11;publicclassStringToHtmlTransforfierextendsAbstractTransformer(l.Override11. protectedObjectdoTransform(0bject$rc,Stringenc)12. throwsTransforiierException(13. Stringstr«(String)src;14.ISereturnHtmlTenp1ateUtil.getSimpleHtml(str);16. )17.18.)Component:WeIcomService返M欢迎内容javSeWpiropypackagecom.muleponent;importcon.mule.domain.Person;publicclassWelcomService(publicStringsayHello(Personperson)return-Hello,'÷person.getKame(),yourageis"*person.getAge();9)l.11.publicStringsay1.ove(Personperson)12. return1.oveyou"*person.getNa11e()÷",yourageisperson.getAge();13. )14.15. )Person类:jvaVWWplincopy2345678packagecom.mule.domain;publicclassPersonprivateStringna11e;privateitage;publicPerson()l.publicPerson(Stringna11e,intage)11. this.ane三name;12. this.age«age;1314.15. publicStringgetName()16. returnname;17. )18.19. publicvoidsetNa11e(Stringna11e)2.21.22.23.24.25.26.27.28.29.3.this.na11e-name;)publicIntgetAge()returnage;)publicvoidsetAge(Intage)this.age«age;31.)(java)VeeWPlalnCoPV1.HtnlTeffiplateUtilI:具类:用选句封转始定的textpackagecom.mule.util;5publicstaticStringgetSimpleKtml(Stringtext)6.Stringoutput=*h;7.8.output-9.output*三M<head>M;l.output+=,<meta-equiv="Content-1.anguage"content="en-us">"11.output-,<meta-equiv-Content-Type,'content-*'te×thtml;Charset=Windows-1252,7>"12.output+三,'<title>BookstoreAdministrationConsole<title>n;13.output",'<head>"14.15.output÷=,<bodyIinIC=VtFFFFF八"vlink="#FFFFFFHalinFFFFFF"bgC010r="99e6,'te×t="FFFFFF">,';16.outputtext;17.output=,*<body>"18.19.output=,'<br><ahref"bookstore-admi>ReturntoHomePage<a>,;2.output*三,<html>"publicclassHtmlTemplateUtil321.22. returnoutput;23. )24.25.