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

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

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

    隨筆 - 119  文章 - 3173  trackbacks - 0
    <2008年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    交友莫獨酒,茅臺西鳳游。
    口干古井貢,心徜洋河流。
    稱多情杜康,趟無量雙溝。
    贊中華巍巍,無此不銷愁。

    常用鏈接

    留言簿(68)

    隨筆分類(136)

    隨筆檔案(122)

    最新隨筆

    搜索

    •  

    積分與排名

    • 積分 - 525157
    • 排名 - 93

    最新評論

    java6 web service無法傳遞hashmap和arraylist,大失所望之余,不得不思考一下,實際應用中最常用的兩個集合對象就是不能傳遞么?

    經過一番思考+翻閱資料。于是終極解決方案終于出現,--------------------------------那就是:
    用數組.

    先看代碼,再討論:
    服務端:
    ?1?package?service;
    ?2?
    ?3?import?javax.jws.WebMethod;
    ?4?import?javax.jws.WebService;
    ?5?import?javax.jws.soap.SOAPBinding;
    ?6?
    ?7?import?modle.UserInfo;
    ?8?
    ?9?@WebService(targetNamespace?=?"http://jdk.study.hermit.org/testarray")
    10?@SOAPBinding(style?=?SOAPBinding.Style.RPC)
    11?public?class?GetArray?{
    12?????
    13?????@WebMethod
    14?????public?UserInfo?[]?sayHello(int?n)?{
    15?????????UserInfo?[]?userlist?=?new?UserInfo[n];
    16?????????for?(int?i?=?0;?i?<?n;?i++)?{
    17?????????????userlist[i]?=?new?UserInfo();
    18?????????????userlist[i].setId(i);
    19?????????????userlist[i].setName("name"?+?i);
    20?????????}
    21?????????return?userlist;
    22?????}
    23?}
    客戶端:
    ?1?package?test;
    ?2?
    ?3?import?static?org.junit.Assert.assertNotNull;
    ?4?
    ?5?import?java.util.List;
    ?6?
    ?7?import?org.hermit.study.jdk.testarray.GetArray;
    ?8?import?org.hermit.study.jdk.testarray.GetArrayService;
    ?9?import?org.hermit.study.jdk.testarray.UserInfo;
    10?import?org.hermit.study.jdk.testarray.UserInfoArray;
    11?import?org.junit.Test;
    12?
    13?public?class?TestArray?{
    14?????@Test
    15?????public?void?sayHello()?{
    16?????????GetArrayService?service?=?new?GetArrayService();
    17?????????assertNotNull(service);
    18?????????GetArray?obj?=?service.getGetArrayPort();
    19?????????assertNotNull(obj);
    20?????????UserInfoArray?usrArray?=?obj.sayHello(5);
    21?????????assertNotNull(usrArray);
    22?????????List<UserInfo>?usrList?=?usrArray.getItem();
    23?????????assertNotNull(usrList);
    24?????????for?(UserInfo?info?:?usrList)?{
    25?????????????System.out.println(info.getId());
    26?????????????System.out.println(info.getName());
    27?????????}
    28?????}
    29?}

    從代碼中看到,我們在服務端返回的是一個對象數組,到了客戶端,已經被自動轉換成我們魂牽夢繞的list,而且是類型安全的。泛型+foreach用起來是多么的愜意。至此,困擾已久的問題終于解決了。


    那么這一切到底是為什么呢?
    一切要從web service的本質說起,來吧,我們一起復習一下概念:

    Web?Service是為實現“基于web無縫集成”的目標而提出的全新概念,希望通過Web?Service能夠實現不同的系統之間能夠用“軟件-軟件對話”的方式相互調用,打破軟件應用、網站和各種設備之間格格不入的狀態。

    Web?Service是一個應用程序,它向外界暴露一個能夠通過Web進行調用的API,這就是說,能夠用編程的方法通過web調用來實現某個功能的應用程序。

    Web?Service是一種新的Web應用程序分支,它們是自包含、自描述,模塊化的應用,可以在網絡中被描述、發布、查找以及通過Web調用。

    Web?Service概述

    Web?Service平臺需要一套協議來實現分布式應用程序的創建。任何平臺都有它的數據表示方法和類型系統。要實現互操作性,Web?Service平臺必須提供一套標準的類型系統,用于溝通不同的平臺、編程語言和組建模型中的不同類型系統。

    不同語言,不同平臺間的數據傳遞就是問題的本質。
    web servie中盡量不要使用本地語言的對象比如hashmap等,你不能保證調用者使用的語言也有這個對象。


    這是一篇很久前寫了一半的文章。后來太忙就擱置了,今天終于補完了。
    posted on 2008-05-28 10:33 交口稱贊 閱讀(4060) 評論(3)  編輯  收藏 所屬分類: Java6

    FeedBack:
    # re: 學習Java6(一) WebServices (7)傳遞集合對象終極解決方案 2008-07-23 10:40 ponpon
    你好,恩先謝謝你的文章,文章中提到了傳遞對象數組的問題,可是文中只是說了能從服務器端把對象數組傳遞回給客戶端,請問客戶端能把對象數組傳遞給服務器端嗎?意思是說在服務器端有這樣的接口:
    public String sayHello( UserInfo[] users );
    望能回信: javapon@163.com  回復  更多評論
      
    # re: 學習Java6(一) WebServices (7)傳遞集合對象終極解決方案 2009-06-15 12:03 Ricky
    謝謝,學習了。  回復  更多評論
      
    # re: 學習Java6(一) WebServices (7)傳遞集合對象終極解決方案[未登錄] 2012-11-16 16:23 wu
    你在這個對象中放集合和hasmap等數據,你再這么做試試  回復  更多評論
      
    主站蜘蛛池模板: 国产精品亚洲综合| 亚洲色偷偷综合亚洲AV伊人蜜桃 | 亚洲AV无码久久精品狠狠爱浪潮| 羞羞漫画登录页面免费 | 国产亚洲情侣一区二区无码AV| 国产成人+综合亚洲+天堂| 国产嫩草影院精品免费网址| 日韩精品亚洲专区在线影视| 亚洲国产小视频精品久久久三级| 特级无码毛片免费视频| 亚洲综合伊人久久大杳蕉| 暖暖免费日本在线中文| 亚洲宅男永久在线| 100000免费啪啪18免进| 亚洲av无码一区二区三区天堂 | 一二三四在线观看免费高清中文在线观看 | 日韩精品视频免费网址| 无忧传媒视频免费观看入口| 精品国产香蕉伊思人在线在线亚洲一区二区| 国产精品偷伦视频免费观看了 | 免费黄网在线观看| 特级一级毛片免费看| 久久被窝电影亚洲爽爽爽| 国产人成免费视频网站| 国产亚洲综合久久| 亚洲国产精品无码专区在线观看| 最近免费中文字幕高清大全| 亚洲av永久无码精品网址| 亚洲午夜无码久久久久| 国产成人免费午夜在线观看| 毛片亚洲AV无码精品国产午夜| 中国亚洲女人69内射少妇| 国产精品久久免费| 一区免费在线观看| 亚洲精品福利网站| 日韩亚洲国产综合久久久| 精品一区二区三区免费毛片爱| 亚洲avav天堂av在线网毛片| 国产V亚洲V天堂A无码| 韩国二级毛片免费播放| 久久福利青草精品资源站免费|