web自動化測試-Web Service服務(wù)器端和客戶端
一個Web Service服務(wù)器,本質(zhì)上和一個Web服務(wù)器是相同的。它主要做下面這些事:
--> 監(jiān)聽網(wǎng)絡(luò)端口(監(jiān)聽服務(wù)端口)
--> 接收客戶端請求(接收SOAP請求)
--> 解析客戶端請求(解析SOAP消息,將SOAP消息轉(zhuǎn)換為數(shù)據(jù)對象)
--> 調(diào)用業(yè)務(wù)邏輯 (調(diào)用Web Service實現(xiàn)類的特定操作,參數(shù)是由SOAP消息轉(zhuǎn)換而來的數(shù)據(jù)對象)
--> 生成響應(yīng) (將返回值轉(zhuǎn)換為SOAP消息)
--> 返回響應(yīng) (返回SOAP響應(yīng))
WebService開發(fā)可以分為服務(wù)器端開發(fā)和客戶端開發(fā)兩個方面:
服務(wù)端開發(fā):把公司內(nèi)部系統(tǒng)的業(yè)務(wù)方法發(fā)布成WebService服務(wù),供遠(yuǎn)程合作單位和個人調(diào)用。
(借助一些WebService框 架可以很輕松地把自己的業(yè)務(wù)對象發(fā)布成WebService服務(wù),
Java方面的典型WebService框架包括:axis,xfire,cxf 等,java ee服務(wù)器通常也支持發(fā)布WebService服務(wù),例如JBoss。)
客戶端開發(fā):調(diào)用別人發(fā)布的WebService服務(wù),大多數(shù)人從事的開發(fā)都屬于這個方面,例如,調(diào)用天氣預(yù)報WebService服務(wù)。
(使用廠 商的WSDL2Java之類的工具生成靜態(tài)調(diào)用的代理類代碼;
使用廠商提供的客戶端編程API類;
使用SUN公司早期標(biāo)準(zhǔn)的jax-rpc開發(fā)包;
使用 SUN公司最新標(biāo)準(zhǔn)的jax-ws開發(fā)包。)
WebService 的工作調(diào)用原理:
對客戶端而言,我們給這各類WebService客戶端API傳遞wsdl文件的url地址,這些API就會創(chuàng)建出底層的代理類,我調(diào)用 這些代理,就可以訪問到webservice服務(wù)。代理類把客戶端的方法調(diào)用變成soap格式的請求數(shù)據(jù)再通過HTTP協(xié)議發(fā)出去,并把接收到的soap 數(shù)據(jù)變成返回值返回。
對服務(wù)端而言,各類WebService框架的本質(zhì)就是一個大大的Servlet,當(dāng)遠(yuǎn)程調(diào)用客戶端給它通過http協(xié)議發(fā)送過來 soap格式的請求數(shù)據(jù)時,
它分析這個數(shù)據(jù),就知道要調(diào)用哪個java類的哪個方法,于是去查找或創(chuàng)建這個對象,并調(diào)用其方法,
再把方法返回的結(jié)果包裝成 soap格式的數(shù)據(jù),通過http響應(yīng)消息回給客戶端。
頁:
[1]