精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

詳解WebService開發(fā)中四個(gè)常見問題

開發(fā)
WebService開發(fā)中經(jīng)常會(huì)碰到諸如WebService與方法重載、循環(huán)引用、數(shù)據(jù)被穿該等等問題。本文會(huì)給大家一些很好的解決方法。

任何問題都需要從它的根源說起,所以簡(jiǎn)單說一下WebService的工作原理。客戶端調(diào)用一個(gè)WebService的方法,首先需要將方法名和需要傳遞的參數(shù)包裝成XML(也就是SOAP包),通常是通過HTTP傳遞到服務(wù)器端,然后服務(wù)器端解析這段XML,得到被調(diào)用方法名稱和傳遞來的參數(shù),進(jìn)而調(diào)用WebService實(shí)例的相應(yīng)方法。方法執(zhí)行完成之后,將返回的結(jié)果再包裝成XML(SOAP響應(yīng))發(fā)送到客戶端,客戶端解析這段XML,進(jìn)而得到返回結(jié)果。這里關(guān)鍵的地方在于中間加入了對(duì)象和XML相互轉(zhuǎn)換的過程。

問題一:WebService與方法重載

首先說明,WebService不支持方法重載。下面舉例說明。

例如定義如下WebService接口:

1 @WebService
2 public interface IHello {
3         @WebMethod
4         public String sayHello(int id);
5
6         @WebMethod
7         public String sayHello(String name);
8        
9         @WebMethod
10         public String sayHello2(int id);
11
12         @WebMethod
13         public String sayHello2(int id, String name);
14     }

先來看方法sayHello(),如果客戶端發(fā)送如下SOAP請(qǐng)求:

1 <soap:Envelope>
2         <soap:Body>
3             <sayHello>
4                 <arg0>11</arg0>
5             </sayHello>
6         </soap:Body>
7     </soap:Envelope>

從SOAP請(qǐng)求我們可以看出客戶端需要調(diào)用方法為sayHello(),所傳遞的參數(shù)為11,但是無法知道是整數(shù)的11,還是字符串"11",所以也就無法確定所調(diào)用的方法是哪一個(gè)。

接下來看一下sayHello2(),如果客戶端傳遞的參數(shù)只包括一個(gè)id值,例如:

1 <soap:Envelope>
2         <soap:Body>
3             <sayHello2>
4                 <arg0>1</arg0>
5             </sayHello2>
6         </soap:Body>
7     </soap:Envelope>

還是無法判斷調(diào)用的是哪個(gè)方法,因?yàn)榭梢岳斫鉃榭蛻舳藗鬟f的第二個(gè)參數(shù)為空(Null)。

通常情況下,在發(fā)布一個(gè)含有重載方法的WebService時(shí)會(huì)有異常發(fā)生,或者當(dāng)調(diào)用一個(gè)方法時(shí),服務(wù)器端報(bào)告找不到相對(duì)應(yīng)的方法。

問題二:我的數(shù)據(jù)被修改了?

先來看WebService接口:

1 @WebService
2     public interface IHello {
3    
4         @WebMethod
5         public String sayHello(IPerson person);
6    
7     }
8    
9     public interface IPerson {
10         ...
11     }
12    
13     public class Person implements IPerson{
14         ...
15     }

這里需要注意的是WebService的方法sayHello()的參數(shù)是一個(gè)接口,而不是一個(gè)具體類(例如Aegis綁定就允許直接發(fā)布這樣的WebService)。在客戶端調(diào)用sayHello()的時(shí)候傳遞一個(gè)Person對(duì)象,它實(shí)現(xiàn)了IPerson接口。經(jīng)過中間一系列的XML和對(duì)象之間的轉(zhuǎn)換過程,服務(wù)器端得到的只是一個(gè)實(shí)現(xiàn)了IPerson接口的實(shí)例,它不一定就是一個(gè)Person對(duì)象,如果要強(qiáng)制將其轉(zhuǎn)換為Person,就有可能拋出異常。

問題的根源在于Aegis將XML轉(zhuǎn)換為Java對(duì)象是通過Proxy或CGlib這類的工具生成一個(gè)“代理類”實(shí)現(xiàn)IPerson接口,然后創(chuàng)建這個(gè)代理類的一個(gè)實(shí)例,那它肯定不是一個(gè)Person了。

#p#

問題三:循環(huán)引用

還是先來看一個(gè)例子。下面是WebService的接口:

1 @WebService
2     public interface IHello {
3    
4         @WebMethod
5         public String sayHello(Teacher teacher);
6    
7     }
8    
9     public class Teacher {
10         private Student[] students;
11        
12         //getters and setters
13         ...
14     }
15    
16     public class Student {
17         private Teacher teacher;
18        
19         //getters and setters
20         ...
21     }

請(qǐng)注意,Teacher和Student是一對(duì)多的“雙向”關(guān)系。在這種情況下,我們可以想一下如何將一個(gè)Teacher對(duì)象轉(zhuǎn)換成一段XML?

您可能想到下面的答案:

1 <teacher>
2         <students>
3             <teacher>
4                 <students>
5                     <teacher>
6                         <students>
7                             ...
8                         </students>
9                         ...
10                     </teacher>
11                 </students>
12                 ...
13             </teacher>
14         </students>
15         
16         <students>
17             ...
18         </students>
19         ...
20     </teacher>

看到了吧,XML竟然也會(huì)進(jìn)入“死循環(huán)”。問題的根源在于對(duì)象之間的循環(huán)引用。這種問題通常在客戶端發(fā)送WebService請(qǐng)求之前就會(huì)拋出異常,因?yàn)闊o法將這個(gè)對(duì)象轉(zhuǎn)換為可傳輸?shù)腦ML。

問題四:龐然大物

還是先看一個(gè)例子,下面是WebService的接口:

1 @WebService
2     public interface IHello {
3    
4         @WebMethod
5         public String sayHello(Student[] students);
6    
7     }
8    
9     public class Teacher {
10         ...
11     }
12    
13     public class Student {
14         private Teacher teacher;
15        
16         //getters and setters
17         ...
18     }

這個(gè)方法接收一個(gè)Student數(shù)組,包含成百上千個(gè)Student,與上面例子不同的是Student和Teacher現(xiàn)在是多對(duì)一的單向關(guān)系,所以不會(huì)有“循環(huán)引用”的問題。假設(shè)所有這些Student的Teacher是一個(gè)人。我們?cè)囍鴮⑦@個(gè)Student數(shù)組對(duì)象轉(zhuǎn)換為一段XML,如下:

1 <student>
2     <teacher>
3                 ...
4         </teacher>
5     </student>
6 <student>
7     <teacher>
8                 ...
9         </teacher>
10     </student>
11     ...

問題出來了,看到了沒有,每個(gè)Student節(jié)點(diǎn)下面都有一個(gè)Teacher節(jié)點(diǎn),當(dāng)這段XML被接收方轉(zhuǎn)換為Student數(shù)組時(shí),每個(gè)學(xué)生都有了一個(gè)自己的老師,Teacher對(duì)象被復(fù)制了成百上千次,經(jīng)過這么一個(gè)轉(zhuǎn)換--傳輸--轉(zhuǎn)換的過程,這個(gè)數(shù)組對(duì)象真的成了一個(gè)“龐然大物”。

問題的根源在于Student和Teacher之間的關(guān)系是多對(duì)一,當(dāng)傳送“多”方時(shí),“一”方有可能會(huì)被復(fù)制多次。從而占用大量網(wǎng)絡(luò)傳輸帶寬和內(nèi)存。在這里參數(shù)不一定非要是一個(gè)集合或者數(shù)組,例如ObjectA和ObjectB都有一個(gè)對(duì)ObjectC的引用,經(jīng)過SOAP傳送過后,ObjectC就由一個(gè)變成兩個(gè)了,分別屬于ObjectA和ObjectB,而不再是共享一個(gè)ObjectC了。

【編輯推薦】

  1. XML WebService完全實(shí)例詳細(xì)解析
  2. XML新手入門 創(chuàng)建構(gòu)造良好的XML
  3. 實(shí)現(xiàn)XML和Web服務(wù)時(shí)要避免的三種常見錯(cuò)誤
責(zé)任編輯:彭凡 來源: ITPUB
相關(guān)推薦

2012-06-12 09:37:26

2009-07-24 15:35:00

ASP.NET連接Or

2009-11-02 17:25:04

ADSL常見問題

2009-12-31 09:58:51

Ubuntu常見問題

2010-07-12 14:13:15

SQL Server開

2015-05-15 09:37:24

iOS開發(fā)爭(zhēng)議

2024-07-01 08:23:20

2022-10-26 14:55:53

AIoT物聯(lián)網(wǎng)人工智能

2021-11-29 18:07:50

軟件安全網(wǎng)絡(luò)攻擊漏洞

2021-11-02 10:08:25

安全左移網(wǎng)絡(luò)安全漏洞

2012-03-06 08:47:40

Corona

2020-10-18 12:00:27

前端開發(fā)架構(gòu)

2021-08-24 10:51:19

多云云計(jì)算云平臺(tái)

2020-05-25 22:41:27

LoRaWAN物聯(lián)網(wǎng)技術(shù)物聯(lián)網(wǎng)

2013-05-10 10:39:15

2012-11-14 14:39:21

2024-11-04 15:49:02

2009-07-20 14:32:08

2009-10-19 11:33:22

數(shù)據(jù)中心綜合布線

2018-09-29 09:19:44

布線數(shù)據(jù)中心串?dāng)_
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

婷婷精品在线| 天堂在线观看视频| 久久中文字幕av一区二区不卡| 美女在线观看视频一区二区| 日韩中文字幕在线观看| 中文字幕亚洲日本| 日本美女一区| 亚洲卡通动漫在线| 精品国产第一页| 一级黄色片视频| 亚洲精品资源| 精品国产一区二区三区久久狼5月| 日韩精品――色哟哟| 欧美一区久久久| 亚洲一本大道在线| 少妇特黄a一区二区三区| 性猛交xxxx乱大交孕妇印度| 免费视频久久| 亚洲一区av| 亚洲精品高清视频在线观看| 鲁丝一区二区三区免费| 国产国语亲子伦亲子| 久久综合九色综合欧美狠狠| 欧美不卡视频一区发布| 丁香花五月婷婷| 福利片在线一区二区| 国产精品高潮呻吟久久| 精品一区二区三区国产| av片免费播放| 久久精品国产一区二区三区免费看| 97在线免费观看视频| 在线观看美女av| 日本不卡二三区| 亚洲欧美国产制服动漫| 中文字幕乱视频| 波多野结衣中文在线| 日本一区二区三区四区在线视频 | 日韩精品在线不卡| 小说区亚洲自拍另类图片专区 | 在线国产情侣| 国产欧美日韩卡一| 欧美午夜精品久久久久免费视| 韩国av电影在线观看| 国产老肥熟一区二区三区| 国产在线视频一区| 中文字幕一区二区三区人妻四季 | 捆绑紧缚一区二区三区视频| 欧洲一区二区视频| 久久一区二区三区视频| 伊人久久综合| 97视频在线看| 久久夜靖品2区| 亚洲免费高清| 亚洲欧美综合精品久久成人| 中文字幕在线永久| 国产一区调教| 日韩av在线看| 添女人荫蒂视频| 亚洲婷婷丁香| 亚洲天堂精品在线| 亚洲精品成人无码| 精品日产免费二区日产免费二区| 亚洲欧美日韩高清| 精品亚洲aⅴ无码一区二区三区| 国产一区二区区别| 中文字幕亚洲在线| 久草综合在线视频| 国产精品theporn| 午夜美女久久久久爽久久| 精品成人久久久| 先锋影音久久久| 国产激情久久久| 在线免费观看av片| 国产电影精品久久禁18| 国产成人女人毛片视频在线| 亚洲欧美综合在线观看| 国产亚洲精品久| 一本久久a久久精品vr综合| 黄色的网站在线观看| 一级特黄大欧美久久久| 日韩av综合在线观看| 97精品国产99久久久久久免费| 精品视频一区二区三区免费| 久久出品必属精品| 老司机成人在线| 一区二区三区四区在线观看视频 | 久久久久亚洲视频| 久久国产精品99精品国产| 96成人在线视频| 日韩精品视频无播放器在线看 | 日韩黄色三级视频| 日韩精品一卡二卡三卡四卡无卡| 国产热re99久久6国产精品| 午夜精品一二三区| 国产午夜精品一区二区三区四区| 小说区视频区图片区| 国内激情视频在线观看| 亚洲视频一区二区在线观看| 国产一线二线三线女| 成人小电影网站| 欧美一区二区三区思思人| 国产激情视频网站| 久久精品一区二区不卡| 91国在线精品国内播放| 国产露脸国语对白在线| 99久久国产综合精品麻豆| 97碰碰视频| 久草在线网址| 亚洲一级二级三级在线免费观看| 久久黄色免费看| 懂色av一区二区| 最新中文字幕亚洲| 少妇精品无码一区二区免费视频| 欧美在线影院| 国产精品视频精品| 偷拍精品一区二区三区| 亚洲三级在线免费| 亚洲中文字幕久久精品无码喷水| 日韩中文字幕在线一区| 中文字幕日韩在线观看| 亚洲国产成人无码av在线| 国产成人午夜视频| 亚洲国产日韩欧美| 性欧美1819sex性高清| 精品日韩欧美在线| 午夜精品福利在线视频| 欧美aaaaa成人免费观看视频| 精品一区二区三区日本| 美女网站视频在线| 亚洲成人av电影在线| 亚洲一二三av| 清纯唯美激情亚洲| 中文字幕亚洲字幕| 国产精品欧美综合| 久久久久久久久久久久久夜| 精品视频免费在线播放| 亚洲黄色免费看| 亚洲精品在线三区| 欧美黑人一级片| 国产精品综合二区| 免费观看中文字幕| 大桥未久在线播放| 日韩亚洲欧美中文三级| 日本黄色大片在线观看| 91成人免费| 国产在线拍揄自揄视频不卡99 | 欧美另类极品videosbestfree| 亚洲天堂国产精品| 国产精品毛片大码女人| 视频在线观看免费高清| 成人在线电影在线观看视频| 国产精品爱久久久久久久| 九一国产在线| 欧美色男人天堂| 最新黄色av网址| 欧美大片专区| 豆国产97在线| 538在线视频| 日韩麻豆第一页| 天堂网中文在线观看| 蜜臀精品久久久久久蜜臀| 亚洲日本一区二区三区在线不卡| 国产精品久久久久久吹潮| 爱福利视频一区| 国产熟女一区二区三区四区| 9色porny自拍视频一区二区| 国产在线播放观看| 亚洲精品国产精品粉嫩| 国产精品视频一区二区三区四| √天堂资源地址在线官网| 欧美久久久久久久久中文字幕| 国产精品国产三级国产传播| 国产成人免费在线观看不卡| 国产一线二线三线女| 女人av一区| 国产精品免费久久久久久| 久操视频在线| 亚洲国产精品久久精品怡红院| 久久黄色精品视频| 国产精品丝袜91| 亚洲高清av一区二区三区| 欧美午夜电影在线观看 | 亚洲美女屁股眼交| 五十路六十路七十路熟婆| 久久久久国产精品一区二区| 国产一区二区香蕉| 四虎影院观看视频在线观看| 日韩电影免费观看在线观看| 国产精品成人久久久| 亚洲永久免费av| 久久久久国产精品区片区无码| 美女免费视频一区| 777av视频| 欧美电影一区| 久久资源av| 国产一区 二区| 国产成人一区二区| av网站免费在线观看| 日韩精品有码在线观看| 国产精品一级视频| 色琪琪一区二区三区亚洲区| 欧美精品成人久久| 国产天堂亚洲国产碰碰| 亚洲成人精品在线播放| 热久久国产精品| 91视频最新入口| 午夜精品久久久久99热蜜桃导演| 青青草国产精品| 欧美综合精品| 国产二区不卡| 成人国产精品久久| 久久高清国产| 91精品久久久久久久久| 大桥未久在线播放| 久久视频精品在线| 国产乱理伦片a级在线观看| 精品国产乱码久久久久久影片| 中文字幕视频免费观看| 精品欧美aⅴ在线网站 | 亚洲国产另类av| 制服丨自拍丨欧美丨动漫丨| 91麻豆视频网站| 亚洲色图欧美另类| 国产在线视频不卡二| 黑森林精品导航| 久久久久久色| 国产网站免费在线观看| 欧美成人69| 免费观看黄色的网站| 成人一区二区| 亚洲国产精品久久久久婷婷老年 | 久久久一区二区| 国产精品无码一区二区三| 国产成人免费视频一区| 色网站在线视频| 九九在线精品视频| 中文字幕 日韩 欧美| 国产欧美高清视频在线| 国产综合欧美在线看| 激情av综合| 国产自产精品| 女人抽搐喷水高潮国产精品| 国产精品毛片va一区二区三区| 日韩中文字幕视频网| 成人av网站观看| 国产伦精品一区二区三区免费优势| 69174成人网| 亚洲精品18| 国产精品污www一区二区三区| 91蝌蚪精品视频| 国产在线精品一区二区三区》| 黄色成人美女网站| 免费看成人av| 精品视频99| 亚洲三区在线观看| 久久精品亚洲人成影院| 激情六月天婷婷| 一道本一区二区| 青青草原av在线播放| 国产美女一区| 波多野结衣天堂| 激情欧美一区二区| 久久成人免费观看| 校园春色综合网| 九九视频精品在线观看| 久久国产视频网| 国产又黄又嫩又滑又白| 成人中文字幕电影| 香蕉视频黄色在线观看| 欧美韩国日本不卡| 国产真实乱在线更新| 亚瑟在线精品视频| 手机在线免费看片| 亚洲一区二区四区蜜桃| 久久露脸国语精品国产91| 在线视频欧美精品| 国产色片在线观看| 亚洲精品xxxx| av在线播放av| 欧美激情videoshd| 成人爱爱网址| 成人日韩av在线| 欧美一级二级三级视频| 在线天堂一区av电影| 国产精品激情电影| caopor在线视频| 午夜亚洲精品| www.99在线| 国产精品伊人色| 成年人网站免费看| 欧美国产1区2区| 国产亚洲第一页| 欧美日韩中字一区| 香蕉久久国产av一区二区| 国产亚洲精品久久久| 黄色影院在线看| 国产精品自产拍高潮在线观看| 成人春色在线观看免费网站| 亚欧精品在线| av不卡在线| 91欧美一区二区三区| 国产亚洲欧美在线| 久久久久久久9999| 欧美日韩色一区| 五月天婷婷视频| 欧美另类暴力丝袜| 激情久久一区二区| 欧洲在线视频一区| 伊人蜜桃色噜噜激情综合| 日本在线观看视频一区| 久久精品综合网| 久草国产精品视频| 日韩三区在线观看| 91se在线| 日本中文字幕不卡免费| 黑人久久a级毛片免费观看| 亚洲精品成人三区| 久久一区激情| 日韩精品一区二区三区高清免费| 有坂深雪av一区二区精品| 怡春院在线视频| 亚洲性线免费观看视频成熟| 51漫画成人app入口| 97久久天天综合色天天综合色hd| 久久中文亚洲字幕| 狠狠躁狠狠躁视频专区| 久久久久久久久岛国免费| 国产成人在线播放视频| 欧美va亚洲va在线观看蝴蝶网| 搞黄网站在线观看| 成人a视频在线观看| 久久视频在线| 天天操天天爽天天射| 国产网站一区二区三区| 6080午夜伦理| 国产婷婷色综合av蜜臀av| 欧美激情护士| 久久精品人人做人人爽电影| 伊人久久大香线蕉综合热线| www.四虎精品| 亚洲国产综合人成综合网站| 风流老熟女一区二区三区| 欧美大片在线看免费观看| 精品国产一区二区三区2021| 只有这里有精品| 国产成人精品三级| 免费毛片在线播放免费| 精品三级在线观看| √8天堂资源地址中文在线| 国产精品一区二区三区在线观 | 日韩免费电影在线观看| 成人黄色av片| 91蜜桃在线免费视频| 精品久久久久久久久久久国产字幕| 欧美日韩精品一区二区在线播放| 国产69久久| 成人在线播放av| 午夜日韩在线| 黄色片视频免费观看| 色婷婷av一区二区三区软件 | 欧美激情国内偷拍| 精品三级av在线导航| 无码aⅴ精品一区二区三区浪潮| 久久综合成人精品亚洲另类欧美| 成人免费视频入口| 欧美久久久一区| 欧美1234区| 久久精品二区| 日韩二区三区在线观看| 波多野结衣喷潮| 欧美成人女星排行榜| 麻豆理论在线观看| 视频一区二区三| 国产乱一区二区| 日韩久久中文字幕| 少妇av一区二区三区| www.神马久久| 久久久久国产精品熟女影院| 亚洲图片欧美激情| 天天色棕合合合合合合合| 国产精品久久一| 欧美精品三级| 熟女少妇内射日韩亚洲| 88在线观看91蜜桃国自产| 麻豆免费在线| 伊人久久大香线蕉精品| 成+人+亚洲+综合天堂| 国产精品自拍第一页| 久久国产精品久久久久| 一区二区三区日本久久久 | 波多野结衣在线一区| 亚洲中文字幕无码爆乳av| 久久夜色精品国产| 日韩欧美黄色| 香蕉视频xxxx| 91黄色在线观看| 国产又色又爽又黄刺激在线视频| 欧美一区二区三区四区在线观看地址 | 亚洲成av人片在www色猫咪| 成人免费在线观看|