<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Terry.Li-彬

    虛其心,可解天下之問;專其心,可治天下之學;靜其心,可悟天下之理;恒其心,可成天下之業。

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks
    Java代碼 復制代碼
    1. ? public ? class ?Person? ??
    2. ??{ ??
    3. private ?String?name; ??
    4. private ?String?surname; ??
    5. private ?Date?registerDate?=? new ?Date(); ??
    6. private ? int ?age?=? 20 ; ??
    7. ???...??


    2.? 服務接口類
    Java代碼 復制代碼
    1. ?public?interface?PersonService?{??? ??
    2. String?printPerson(Person?person)?;? ??
    3. Person?createPerson(String?name,String?surname,int?age);???? ??
    4. ????Person[]?batchCreatePerson(String?namePattern); ??
    5. ?}??


    3. 實現類:
    Java代碼 復制代碼
    1. package?demo.mule.person; ??
    2. ??
    3. public?class?PersonServiceImpl?implements?PersonService?{ ??
    4. ????public?String?printPerson(Person?person)?{?????? ??
    5. ????????return?"person:name="?+?person.getName()?+",surname="?+?person.getSurname(); ??
    6. ????} ??
    7. ???? ??
    8. ????/** ?
    9. ?????*?test?return?a?complex?type?by?web?service ?
    10. ?????*/??
    11. ????public?Person?createPerson(String?name,?String?surname,int?age)?{ ??
    12. ????????Person?p?=?new?Person(name,surname); ??
    13. ????????p.setAge(age); ??
    14. ????????System.out.println("a?person?is?created:"?+?p.getName()); ??
    15. ????????return?p; ??
    16. ????} ??
    17. ???? ??
    18. ????public?Person[]?batchCreatePerson(String?namePattern)?{ ??
    19. ????????Person[]?persons?=?new?Person[3]; ??
    20. ????????for?(int?i?=?0;?i?<?persons.length;?i++)?{ ??
    21. ????????????Person?p?=?new?Person(namePattern?+?i,namePattern?+?i); ??
    22. ????????????p.setAge(?20?+?i?); ??
    23. ????????????persons[i]?=?p; ??
    24. ????????} ??
    25. ????????return?persons; ??
    26. ????} ??
    27. }??


    4. person-config.xml
    Xml代碼 復制代碼
    1. ??<?xml?version="1.0"?encoding="UTF-8"?>??
    2. <!DOCTYPE?mule-configuration?PUBLIC?"-//MuleSource?//DTD?mule-configuration?XML?V1.0//EN"?"http://mule.mulesource.org/dtds/mule-configuration.dtd">??
    3. <mule-configuration?id="mule-test"?version="1.0">??
    4. ????<model?name="personService">??
    5. ????????<!--?test:?http://localhost:8082/services/personService?method=createPerson?-->??????????? ??
    6. ????????<mule-descriptor?name="personService"?implementation="demo.mule.person.PersonServiceImpl">??
    7. ????????????<inbound-router>??
    8. ????????????????<endpoint?address="axis:http://localhost:8082/services"></endpoint>??
    9. ????????????</inbound-router>????? ??
    10. ????????????<!--?not?nessesary? ??
    11. ????????????<properties>??
    12. ????????????????<property?name="style"?value="wrapped"/>??
    13. ????????????????<property?name="use"?value="literal"/>??
    14. ????????????</properties>????? ??
    15. ????????????-->??
    16. ????????</mule-descriptor>???????????? ??
    17. ????</model>??
    18. </mule-configuration>??



    5. server啟動
    Java代碼 復制代碼
    1. ??public?class?PersonServiceLaucher?{ ??
    2. public?static?void?main(String[]?args)?throws?ConfigurationException?{ ??
    3. ????MuleXmlConfigurationBuilder?muleXmlConfigurationBuilder?=?new?MuleXmlConfigurationBuilder(); ??
    4. ????UMOManager?manager?=?muleXmlConfigurationBuilder.configure("demo/mule/person/person-config.xml"); ??
    5. } ??



    6. 測試類
    Java代碼 復制代碼
    1. ?public?class?PersonClient?{???? ??
    2. ????private?MuleClient?muleClient?;? ??
    3. ????public?PersonClient()?{ ??
    4. ????????try?{ ??
    5. ????????????muleClient?=?new?MuleClient(); ??
    6. ????????}?catch?(UMOException?e)?{?????? ??
    7. ????????????e.printStackTrace(); ??
    8. ????????} ??
    9. ????} ??
    10. ??
    11. ????public?void?testPrintPerson()?throws?Exception?{ ??
    12. ???????? ??
    13. ????????Person?person?=?new?Person("David","Jones"); ??
    14. ????????UMOMessage?msg?=?new?MuleMessage(person?); ??
    15. ????????UMOMessage?message?=?muleClient.send("axis:http://localhost:8082/services/personService?method=printPerson",msg); ??
    16. ???????? ??
    17. ????????System.out.println("message:"?+?message.getPayloadAsString()); ??
    18. ????} ??
    19. ???? ??
    20. ????public?void?testCreatePerson()?throws?Exception?{ ??
    21. ????????Object[]?args?=?new?Object[]{"小龍","李",?new?Integer(23)}; ??
    22. ????????UMOMessage?msg?=?new?MuleMessage(args?); ??
    23. ????????UMOMessage?message?=?muleClient.send("axis:http://localhost:8082/services/personService?method=createPerson",msg); ??
    24. ???? ??
    25. ????????Person?p?=?(Person)message.getPayload(); ??
    26. ????????System.out.println("message:"?+?message.getPayloadAsString()); ??
    27. ????????System.out.println("payload:"?+?p.getName()?+","?+?p.getSurname()?+","?+?p.getAge()); ??
    28. ????} ??
    29. ???? ??
    30. ????public?void?testBatchCreatePerson()?throws?UMOException?{ ??
    31. ????????Object[]?args?=?new?Object[]{"Admin"}; ??
    32. ????????UMOMessage?msg?=?new?MuleMessage(args?); ??
    33. ????????UMOMessage?message?=?muleClient.send("axis:http://localhost:8082/services/personService?method=batchCreatePerson",msg); ??
    34. ???????? ??
    35. ????????Person[]?ps?=?(Person[])message.getPayload(); ??
    36. ????????System.out.println("persons:"?+?ps.length); ??
    37. ????????for?(int?i?=?0;?i?<?ps.length;?i++)?{ ??
    38. ????????????Person?p?=?ps[i]; ??
    39. ????????????System.out.println("person:"?+?p.getName()?+","?+?p.getSurname()?+","?+?p.getAge()); ??
    40. ????????}??????? ??
    41. ????} ??
    42. ????public?static?void?main(String[]?args)?throws?Exception?{ ??
    43. ????????PersonClient?personClient?=?new?PersonClient(); ??
    44. ????????personClient.testPrintPerson(); ??
    45. ????????personClient.testCreatePerson();???????? ??
    46. ????????personClient.testBatchCreatePerson(); ??
    47. ????} ??
    48. }??



    測試過程:
    1) 啟動Mule服務容器
    2) 執行PersonClient


    總結:
    ? 1) Mule暴露POJO為一個服務還是很簡單的, 配置非常少
    ? 2) 傳遞和返回Java復雜數據類型,自定義數據類型都非常方便。不過,客戶端需要明確知道每個方法傳遞的參數個數和類型,以及返回的參數類型,并且需要自己type cast。 在具體項目中,可以自己再做一層封裝或用AOP, 以本地調用的方式調用 mule 的web service。
    posted on 2009-09-19 20:42 禮物 閱讀(1747) 評論(0)  編輯  收藏 所屬分類: AxisESB
    主站蜘蛛池模板: 国产乱子精品免费视观看片| 影音先锋在线免费观看| 亚洲白色白色永久观看| 韩国18福利视频免费观看| 一级毛片a免费播放王色电影| 久久久久亚洲av无码尤物| 最近中文字幕无吗免费高清| 一级美国片免费看| 亚洲人成人77777在线播放| 国产三级免费观看| 免费福利电影在线观看| 亚洲人成无码网站在线观看 | 成人免费视频88| 4hu四虎免费影院www| 77777午夜亚洲| 国产亚洲精品国看不卡| 成人免费视频网站www| 国产精品九九久久免费视频| 亚洲av一本岛在线播放| 亚洲欧洲日产国码av系列天堂| 成人免费在线看片| 大地资源网高清在线观看免费| 亚洲色大成网站WWW国产| 亚洲AV无码久久精品蜜桃| 日韩成人在线免费视频 | 18禁美女黄网站色大片免费观看| 国产精品久久亚洲一区二区| 噜噜噜亚洲色成人网站∨| 亚洲人成人网站在线观看| 24小时日本在线www免费的| 久久免费区一区二区三波多野| 色网站在线免费观看| 亚洲乱人伦精品图片| 亚洲AV永久无码精品水牛影视| 免费观看日本污污ww网站一区| 久久99九九国产免费看小说| 黄色片免费在线观看| 亚洲精品黄色视频在线观看免费资源| 亚洲国产精品无码中文lv| 久久精品国产亚洲αv忘忧草| 亚洲AV成人片色在线观看高潮|