青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 13,comments - 0,trackbacks - 0
axis 傳輸 簡單對象,復雜對象,List,Map等收藏
來源:http://yangzb.javaeye.com/blog/319900

那些java的對象是可以序列化為xml的, 并且可以從xml反序列化為java對象的?
那些對象與xml之間不能夠序列化和反序列化?
在開發的時候應該注意哪些問題?

根據我的理解, 有如下幾種對象:
1)axis1.2內在支持的幾種對象類型。
????????? 這幾種內在支持的對象包括:
????????? java基本類型 : int, float,,,,
????????? 基本類型包裝類 : Integer, Float, Long...
????????? 還有String, Date, Calendar, BigDecimal, BigInteger, List, Map.
???? 凡是這些內在支持的對象, 不管他們作為某個Service的input 還是 output, 我們在服務端的axis1.2的WEB-INF/server-config.wsdd的該Service的定義中都不需要加入 <beanMapping>或者是<typeMapping>的聲明。

2)簡單的javabean對象類型。
?????? 對于簡單的javabean對象, 比如對象中所有的field都是上面提到的基本類型。 axis1.2也提供了很好的支持。
?????? 比如:
?????? public class JavaBeanInputService {
?????????? public void testJavaBeanInput(MyBean bean) {
?????????????? ......
????????? }
?????? }
???????? 由于MyBean是一個自定義的JavaBean對象, 所以在server-config.wsdd中就必須加上<beanMapping ...../>的聲明, 讓axis知道怎么把request中xml數據deserialize為MyBean對象, 又如何把MyBean對象serialize為xml數據作為response.用wtp自動為JavaInputService生成的wsdl中, MyBean是作為一個complexType在wsdl中定義的。

3)復雜一點的JavaBean對象。
??????? 比如JavaBean對象中的一些field又是自定義的JavaBean,? 這種情況下, wsdl中生成的complextype會有多個, 而在wsdd定義的<beanMapping .../>也會有多個, axis1.2支持起來都是易如反掌。

4)普通的非javabean對象。
????? 對于一些不是javaBean的對象, wtp也會替你生成對應的wsdl的ComplexType, 依據的是對象的getter方法。但是顯然這是不夠的。 比如說有些對象的數據結構比較復雜, 像java.util.HashMap(雖然這個已經被axis內在支持了。)這些對象如果想要把自己的狀態進行serialization和 deserialization, 就得自己編寫serializer和deserializer,? 而且還必須保證wsdl中的該complexType的描述是正確的。

5)java中的List, Map問題。
?????? 試想一下如果一個service的樣子是這樣子的。

?????? public class ListService{
???????????? public List listTest(List list) {
??????????????????? for(Iterator iter = list.iterator(); iter.hasNext(); ) {
?????????????????????????? (MyBean)list.next();//進行強轉。
??????????????????? }
????????????? }
?????? }
??????? 用wtp為這個service生成的wsdl中把list映射為一個type為xsd:anyType的maxOccurs="unbound"的complexType。這樣的話客戶端生成的Stub中的接口中類似于:
??????? public interface ListService{
???????????? public Object[] listTest(Object[] list) ;
??????? }
??????? 如果Client端用戶傳遞的入口參數是String[],那么在服務端執行的必然會發生轉型錯誤。
??????? 因此,在webservice中把List, Map作為service的input, output的做法都是不可行的。至少在jdk1.4的版本中是這樣的。
??????? 一個更好的方法就是:

6)java中的數組。
????? 上例中的ListService如果改造為下面這樣,基本上就沒有上面提到的問題了。
????? public class ListService{
???????????? public MyBean[] listTest(MyBean[] list) {
?????????????????? ...
???????????? }
?????? }
??????? 這樣在wsdl中, MyBean被映射為一種ComplexType,MyBean[]為映射為ComplexType為映射為可以重復出現的MyBean類型。在客戶端的 Stub的接口跟這個也是類似的。從而也成功地避免了List, Map中型別問題。

?????? 要注意的是,在server-config.wsdd中需要配置<arrayMapping.../>
?????? 似乎List, Map的問題用數組就可以解決了。事實上就是如此。但是還得注意的是:
   javabean里邊也不能含有List. 如果MyBean跟其它某個對象是1:n的關系,那么也只能寫成數組的形式,而不能是List的形式。

7)特殊對象java.lang.Object
?????? 如果一個service寫成了下面的形式:
?????? public class ObjectService{
???????????? public Object objInvoke(Object obj) {
?????????????????? ...
???????????? }
?????? }
??????? 想把它發布為web service, 那么幾乎是不太可能的。遇到obj類型,wsdl里邊只能定義為xsd:anyType類型,而這種類型如果給客戶端返回一個比如MyBean類型,那么 必然會導致xml的serialization的失敗。結論就是:

???????? web service中如果input 或者是output是java.lang.Object類型,那么將會導致嚴重問題。
???????
??????? 上 面的幾種對象類型基本上能夠涵蓋將java class發布為web service時需要考慮的對象類型。可以看到開發web service的時候,并不是所有的java都能夠輕而易舉地發布為web service, 一些復雜的類的對象類型,還有一些特殊的對象類型都是要考慮的。最后一個問題是:子類是否也很容易的得到序列化和反序列化?
???????? 答案是肯定的。如下的Service:
????????? public class PolymorphicService{
???????????? public MyBean objInvoke(MyBean obj) {
?????????????????? ...
???????????? }
???????? }
????????? 客戶端的Stub如下:
????????? public class PolymorphicServiceStub{
???????????? public MyBean objInvoke(MyBean obj) {
?????????????????? ...
???????????? }
???????? }
???????? 如果在客戶端調用stub時傳入的不是MyBean類的對象,而是它的子類的一個對象,那么也可以被序列化而傳到服務端。同樣,如果服務端返回的對象是MyBean類的字類的一個對象,也可以成功的被序列化到客戶端。
posted on 2009-05-25 11:13 收藏也是種愛好 閱讀(1058) 評論(0)  編輯 收藏 引用 所屬分類: Java
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            午夜精品视频在线| 午夜老司机精品| 国产精品久久久久婷婷| 欧美伦理在线观看| 欧美日韩直播| 国产精品视频专区| 好看不卡的中文字幕| 有坂深雪在线一区| 一二三区精品| 亚洲欧美卡通另类91av| 久久福利一区| 欧美激情亚洲自拍| 一本久道综合久久精品| 久久国产精品电影| 欧美日韩国产一区二区三区地区| 国产精品女同互慰在线看| 国内精品久久久久久久果冻传媒| 亚洲精品乱码久久久久久黑人| 一本色道久久99精品综合| 欧美一区二区免费| 欧美韩日一区二区三区| 中国成人在线视频| 麻豆成人91精品二区三区| 欧美日韩一区在线观看| 国产欧美二区| av成人国产| 欧美国产日韩亚洲一区| 亚洲午夜一区二区| 欧美精品三级日韩久久| 精品不卡在线| 性xx色xx综合久久久xx| 亚洲国产日韩在线| 午夜精品久久久久久99热软件| 欧美福利视频| 伊人久久大香线蕉综合热线| 亚洲小说区图片区| 亚洲欧洲精品一区二区三区波多野1战4| 99这里只有精品| 国产精品久久午夜| 亚洲第一福利社区| 欧美一区二区在线播放| 亚洲精选大片| 麻豆freexxxx性91精品| 国产在线乱码一区二区三区| 亚洲在线1234| 99亚洲视频| 欧美日韩二区三区| 亚洲精品日韩精品| 免费日韩av电影| 午夜视频一区在线观看| 欧美视频在线观看免费网址| 亚洲激情网站免费观看| 美乳少妇欧美精品| 久久精品成人欧美大片古装| 国产日韩欧美综合一区| 亚洲欧美中文日韩在线| 亚洲视频精选| 国产精品久久久久aaaa| 亚洲综合国产| 国产精品99久久久久久久女警| 欧美日韩国产一区二区三区地区| 日韩视频在线一区二区三区| 亚洲电影在线免费观看| 欧美成人情趣视频| 在线午夜精品自拍| 中文在线不卡视频| 国产精品一香蕉国产线看观看 | 男人的天堂成人在线| 国产综合色产| 欧美福利专区| 欧美激情女人20p| 亚洲精品美女| 亚洲欧洲精品一区二区三区| 欧美久久久久久久| 亚洲一区二区三区精品在线| 99热精品在线| 久久免费高清| 亚洲精品一区二区三区樱花| 亚洲精品久久久久中文字幕欢迎你| 欧美日韩一区在线观看视频| 亚洲一级影院| 久久狠狠久久综合桃花| 最新亚洲一区| 夜夜爽99久久国产综合精品女不卡| 国产乱码精品一区二区三区av| 亚洲欧美三级在线| 久久久噜噜噜久久久| 一区二区三区精品视频| 欧美一级视频一区二区| 亚洲国产中文字幕在线观看| 亚洲美女电影在线| 国产日韩欧美自拍| 亚洲日韩欧美视频| 国产手机视频精品| 亚洲精选一区二区| 国内精品久久久久久影视8| 欧美国产在线视频| 亚洲一区二区综合| 99这里有精品| 国产一区二区久久精品| 欧美福利一区二区三区| 国产精品香蕉在线观看| 91久久久久久久久| 国产一区自拍视频| 日韩视频中午一区| 在线观看不卡av| 亚洲一级片在线观看| 亚洲国产一区二区三区在线播| 亚洲欧美日韩精品久久奇米色影视| 亚洲激情偷拍| 久久久久久久97| 久久精品国产一区二区三区免费看| 欧美日本一区二区三区| 免费观看一级特黄欧美大片| 国产欧美在线| 亚洲一区二区成人在线观看| 亚洲精品国产精品国自产在线| 午夜一区二区三视频在线观看 | 香蕉久久精品日日躁夜夜躁| 你懂的视频欧美| 久久野战av| 国产在线拍偷自揄拍精品| 一区二区三区国产精华| 亚洲乱码国产乱码精品精98午夜| 久久久久久久一区二区三区| 欧美一级专区| 国产精品久久久久久久久| 亚洲精品中文字幕有码专区| 亚洲精品一线二线三线无人区| 久久久综合视频| 麻豆av一区二区三区| 国精品一区二区三区| 欧美在线视频不卡| 久久精品视频va| 国产欧美日韩激情| 亚洲香蕉网站| 欧美一区二区三区四区高清| 国产精品毛片高清在线完整版| 99精品99久久久久久宅男| 在线视频亚洲| 国产精品久久久久影院色老大| 日韩午夜免费视频| 亚洲制服av| 国产目拍亚洲精品99久久精品| 亚洲午夜在线观看| 久久久久九九视频| 亚洲国产日韩欧美综合久久 | 午夜激情亚洲| 久久九九99视频| 影音先锋亚洲精品| 免费国产自线拍一欧美视频| 亚洲激情视频网| 亚洲一区二区三区午夜| 国产精品爽爽ⅴa在线观看| 欧美伊人久久久久久午夜久久久久 | 亚洲国产天堂久久国产91| 久久国产日本精品| 亚洲国产专区校园欧美| 欧美另类69精品久久久久9999| 日韩视频精品| 欧美日韩日日骚| 国产婷婷色综合av蜜臀av| 精品电影在线观看| 亚洲最新视频在线播放| 久久久中精品2020中文| 欧美91福利在线观看| 午夜在线播放视频欧美| 牛牛国产精品| 国产精品一二一区| 一区二区三区 在线观看视频| 久热精品视频在线| 欧美精品二区| 亚洲在线一区二区| 久久午夜视频| 亚洲视频精品| 在线观看亚洲a| 国产精品国产三级国产专播精品人| 亚洲欧美福利一区二区| 欧美国产成人精品| 久久狠狠一本精品综合网| 一本久久综合亚洲鲁鲁| 国产小视频国产精品| 欧美高清在线| 欧美专区日韩视频| 一区二区三区视频免费在线观看| 麻豆精品视频在线观看视频| 亚洲一线二线三线久久久| 亚洲激情女人| 极品少妇一区二区| 国产亚洲精久久久久久| 国产精品黄色| 欧美日韩在线另类| 牛牛影视久久网| 久久精品国产免费观看| 中文精品在线| 99综合精品| 亚洲免费久久| 91久久精品一区| 欧美黄色精品| 免费91麻豆精品国产自产在线观看|