<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 禮物 閱讀(1739) 評論(0)  編輯  收藏 所屬分類: AxisESB
    主站蜘蛛池模板: 亚洲精品视频免费| 亚洲婷婷第一狠人综合精品| 国产亚洲美女精品久久久2020| 国产又粗又长又硬免费视频| 日韩高清免费观看| 日本一区二区三区日本免费| 日本v片免费一区二区三区| 国产精品深夜福利免费观看| 国产精品久免费的黄网站| 国产一级淫片视频免费看| 五月婷婷亚洲综合| 亚洲日韩在线观看免费视频| 亚洲国产婷婷香蕉久久久久久| 免费大学生国产在线观看p| 亚洲成a人片在线观看老师| 亚洲人成网站在线观看青青| 亚洲一区二区三区影院| 久久久久亚洲AV成人无码网站| 亚洲一区二区三区电影| 亚洲乱码中文字幕小综合| 亚洲成年网站在线观看| 色欲色欲天天天www亚洲伊| 又黄又大的激情视频在线观看免费视频社区在线 | 亚洲欧洲日本在线| 亚洲伊人色欲综合网| 亚洲成人在线电影| 亚洲乱码中文字幕小综合| 亚洲av成人一区二区三区观看在线 | 久久久无码精品亚洲日韩软件| 亚洲精品无码Av人在线观看国产| 久久青青草原亚洲AV无码麻豆 | 亚洲国产精品碰碰| 亚洲国产精品嫩草影院在线观看| 亚洲麻豆精品果冻传媒| 亚洲影院天堂中文av色| 午夜肉伦伦影院久久精品免费看国产一区二区三区| 噜噜噜亚洲色成人网站| av永久免费网站在线观看| 国产精品视频免费观看| 国产成人免费片在线观看| 亚洲精品国偷自产在线|