javaWEB模塊webservice文檔一_第1頁
javaWEB模塊webservice文檔一_第2頁
javaWEB模塊webservice文檔一_第3頁
javaWEB模塊webservice文檔一_第4頁
javaWEB模塊webservice文檔一_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、webservice_day01內(nèi)容概述:1 webservice使用場景?2 客戶端調(diào)用遠(yuǎn)程的webservice服務(wù)。3 webservice的三要素4 jax-ws的服務(wù)端和客戶端的開發(fā)基于jdk的實(shí)現(xiàn)。5 wsdl說明書介紹6 注解的使用1. webservice應(yīng)用場景webservcie是一種遠(yuǎn)程調(diào)用技術(shù)。查看ppt1.1. 業(yè)務(wù)場景:1.2. 解決不同網(wǎng)站之間數(shù)據(jù)共享問題?早期:webservice1.2.1. 開放數(shù)據(jù)庫權(quán)限 不同的網(wǎng)站數(shù)據(jù)庫 開發(fā)相關(guān)權(quán)限.1.2.2. u盤拷貝 簡單適用 方便1.2.3. 網(wǎng)站采集不同數(shù)據(jù) 需要專業(yè)人員 分類整理 需要大量的工作勞動(dòng)力2. 本

2、系統(tǒng)和其他網(wǎng)站系統(tǒng)交互方式一: socke 通信方式二: 接口協(xié)議 概念如ppt接口協(xié)議進(jìn)行數(shù)據(jù)傳遞,優(yōu)點(diǎn):網(wǎng)站本身不需要知道其他方系統(tǒng)到底是如何獲取數(shù)據(jù)的. 對(duì)方系統(tǒng)底層使用的數(shù)據(jù)庫 我們不需要關(guān)心!舉例: 手機(jī)歸屬地的查詢.2.1. 我們需要什么樣的接口答案:3. 第一個(gè)webservice案例演示需求:通過外網(wǎng)提供webservice服務(wù)查詢手機(jī)號(hào)歸屬地: webservice服務(wù)網(wǎng)站網(wǎng)絡(luò)查詢介紹輸入手機(jī)號(hào) 直接獲取 手機(jī)歸屬地.演示.獲取網(wǎng)站的ws服務(wù)wsdl 地址: 作用: 定義客戶端生成代理類規(guī)范!3.1. 編寫客戶端 獲取服務(wù)調(diào)用接口實(shí)現(xiàn)1:準(zhǔn)備工作 磁盤g盤下 創(chuàng)建aa 目錄2

3、: cmd 窗口 執(zhí)行 wsimport 命令 解析 手機(jī)歸屬地wsdl 文件wsimport -p cn.itcast.mobilecode.stub -s source -d bin 回車 ok 創(chuàng)建一個(gè)java工程:第一步:生成本地代理類使用jdk 自帶的命令 : wsimport的命令來解析wsdl文件 生成代理類:wsimport -s 如果報(bào)錯(cuò): jdk 1.7 報(bào)錯(cuò)原因:.net生成的wsdl文件,用我們的jdk來解析的時(shí)候,有的元素不識(shí)別解決方法:將xml保存下來,刪除不識(shí)別的元素,然后使用離線的方式進(jìn)行解析;重新生成 執(zhí)行命令.顯示:說明解析成功!生成本地磁盤的的代碼:客戶端

4、代碼開發(fā) 獲取遠(yuǎn)程端手機(jī)歸屬地信息! mobilecodews服務(wù)類 -接口實(shí)例-調(diào)用接口業(yè)務(wù)方法 完成數(shù)據(jù)獲取!只需要.java文件將其拷貝到剛剛新建號(hào)的java工程中:如果拷貝到工程中后,報(bào)錯(cuò),錯(cuò)誤提示:找不到相關(guān)方法,或者方法的參數(shù)不對(duì)。因?yàn)閖dk1.6對(duì)wsimport生成的代碼有些不匹配 如下所示:解決方案:1 更換jdk為1.7版本2 將參數(shù)刪掉 一個(gè)也可以第二步:編寫本地調(diào)用代碼/客戶端代碼,來調(diào)用遠(yuǎn)程的ws服務(wù)運(yùn)行輸出:相關(guān)名稱解釋4. 什么是webservice4.1. webservice概念學(xué)生作業(yè): estore/struts2/store 添加一個(gè)功能 4.2. we

5、bservice由來結(jié)論:webservice是標(biāo)準(zhǔn)化的產(chǎn)品,因此,各種流行的開發(fā)語言和平臺(tái)都支持webservice。4.3. ws底層傳輸簡介了解即可4.4. webservice三要素4.4.1. soap (簡易對(duì)象訪問協(xié)議)數(shù)據(jù)傳輸?shù)膮f(xié)議(http+xml) 基于http協(xié)議傳輸.傳輸?shù)膬?nèi)容是xml 4.4.2. wsdl (web services 描述語言 說明書)定義webservice數(shù)據(jù)是如何傳輸?shù)模瑪?shù)據(jù)的內(nèi)容 以及相關(guān)協(xié)議描述和定義客戶端通過wsdl文件獲取本地代理類(樁)wsimport jdk提供! -s -d -p 4.4.3. uddi (webservice注冊

6、地)注冊webservice服務(wù)整合和發(fā)現(xiàn)webservice服務(wù)類似目錄服務(wù)器ppt所示4.5. wsdl離線使用說明案例 獲取上海天氣 網(wǎng)站獲取 wsdl地址新建目錄 1: cmd 窗口 使用wsimport2:回車 報(bào)錯(cuò).語言之間存在 差異 . 采用離線解析方式 可以修改wsdl文件算出 不必要元素 不要?jiǎng)h除名稱空間含有的 3: 加載本地離線文件 生成源碼以及編譯之后字節(jié)碼文件客戶端編碼編寫測試 ok 5. jax-ws快速入門目標(biāo):通過jax-ws編寫我們自己的服務(wù)端和客戶端。編寫自己的webservice 服務(wù)器端開發(fā) 提供數(shù)據(jù)服務(wù) 和以及對(duì)應(yīng)的客戶端開發(fā)5.1. jax-ws介紹s

7、oap是一個(gè)標(biāo)準(zhǔn)協(xié)議,webservice是使用該協(xié)議的標(biāo)準(zhǔn)!版本問題:不同jdk擁有不同的api實(shí)現(xiàn)。5.2. 服務(wù)端編寫僅僅需要三步驟即可創(chuàng)建一個(gè)工程即可案例:演示手機(jī)號(hào)碼歸屬地查詢 (提供手機(jī)號(hào)碼歸屬地)步驟一編寫服務(wù)端點(diǎn)接口以及實(shí)現(xiàn)類實(shí)現(xiàn)類:步驟二在接口實(shí)現(xiàn)類上上添加注解webservice步驟三endpoint發(fā)布服務(wù)器端的服務(wù) 參照ppt 代碼即可api簡介 來自jdk 提供的類 endpoint提供的靜態(tài)方法 發(fā)布ws服務(wù)該方法介紹使用main方法啟動(dòng)發(fā)布服務(wù)器:地址可以自定義 :9898/mobile注意:ip地址必須是本機(jī)的ip地址!端口絕對(duì)不能

8、已經(jīng)被占用。查詢端口是否已經(jīng)被某某占用:可以使用命令 netstat -ano測試:瀏覽器直接輸入該地址: :9898/mobile?wsdl即可 通過訪問webservice的說明書地址來測試是否發(fā)布成功。 ok !測試 ok .至此 服務(wù)器端開發(fā)完成!5.3. 客戶端編寫一新建另一個(gè)工程:步驟:兩步:步驟一使用wsimport命令生成本地代理類(簡稱:stub)wsimport命令簡單使用介紹 查看文檔jdk自帶命令下發(fā)資料:控制臺(tái)輸入命令.將生成好的代碼,復(fù)制到客戶端的工程中。步驟二通過生成的代理類調(diào)用遠(yuǎn)程端的服務(wù)器的接口代碼先獲取服務(wù)類 直接new 即可

9、在使用服務(wù)類 調(diào)用接口的端口 得到服務(wù)器的接口的實(shí)例 即可.測試 ok !上述客戶端調(diào)用存在不足:如果服務(wù)器端ip地址等信息如果發(fā)生變化,則,需要更改生成的代碼(本地代理類重新生成)5.4. 客戶端編寫二使用service直接創(chuàng)建服務(wù)視圖看到protected就別new。service 方法 : create 方法需要 url地址(wsdl地址) 以及 qname 對(duì)象(名稱空間和服務(wù)視圖名稱) 查看wsdl文件 找到名稱空間和對(duì)應(yīng)的名稱 名稱空間最后/ 千萬不能省掉的!客戶端代碼如下:好處: 服務(wù)器ip地址發(fā)生變換.那么客戶端可以及時(shí)更新代碼! 不需要重新生成本地代理類!6. wsdl文檔說

10、明書介紹什么是wsdl:9898/mobile?wsdl是說明書的地址,wsdl地址;:9898/mobile是webservice的地址。6.1. wsdl的基本結(jié)構(gòu)wsdl文檔是服務(wù)端生成。-遵循規(guī)范 要求不同的語言生成的 都是xml格式!7. 注解使用說明問題:1 wsdl說明書標(biāo)簽由服務(wù)端的源代碼生成的 這樣導(dǎo)致服務(wù)器端的源碼信息泄露。2 如果服務(wù)端代碼發(fā)生了改變,客戶端的代碼也需要相應(yīng)的變化。(開發(fā)不夠靈活)3 采用注解 將wsdl文檔生成結(jié)構(gòu)以及信息 固定!-即使服務(wù)器接口代碼發(fā)送變化 但是生成 wsdl 文件信息仍然不會(huì)發(fā)生變化 那么客戶端生成

11、樁(代理類就不需要改變)7.1. 注解的作用注解: 對(duì)于wsdl 文檔生成 自定義!7.2. 注解分類使用7.2.1. 加在類上面的注解范例演示:wsdl文件:7.2.2. 其他注解注解的范例演示:/手機(jī)號(hào)歸屬地查詢/接口實(shí)現(xiàn)類:實(shí)現(xiàn)部分客戶端測試:步驟一代理類:soap協(xié)議版本1.2,wsimport命令不兼容 警告 并且生成代理類過程失敗 解決方案:在參數(shù)wsdl最后加上一個(gè)參數(shù):步驟二:客戶端代碼:public class jaxwsannclient public static void main(string args) throws exception service servic

12、e=service.create(new url(:8888/mobile?wsdl),new qname( mobileaddressservice);/ 該代碼信息 全部都是 注解里面信息 而不是服務(wù)器源代碼里面的相關(guān)信息mobileaddress ma = service.getport(mobileaddress.class);/ wsdl文件 將會(huì)按照注解生成對(duì)應(yīng)的相關(guān)信息!string addr= ma.getmobileaddress(12222232328);system.out.println(addr);小結(jié):注解可以規(guī)范wsdl文檔,可以將服

13、務(wù)端具體實(shí)現(xiàn)隱藏起來,服務(wù)端接口代碼發(fā)生變化,不會(huì)影響wsdl的內(nèi)容,客戶端代碼不需要修改。7.2.3. webservice的方法的須知:接口實(shí)現(xiàn)類的方法,1:必須是公開public的,2:非靜態(tài)的。滿足上述兩點(diǎn)自動(dòng)發(fā)布到webservice wsdl文件中。webservice可以有多個(gè)操作方法8. webservice開發(fā)須知8.1. 服務(wù)端開發(fā)注意作用:發(fā)布一個(gè)wb服務(wù),提供相關(guān)數(shù)據(jù)(作用: 遠(yuǎn)程端數(shù)據(jù)庫作用)代碼一般寫在業(yè)務(wù)層service層(業(yè)務(wù)層代碼中邏輯需要事務(wù)控制)+dao服務(wù)端一般沒有表現(xiàn)層(web層)8.2. 客戶端開發(fā)注意作用:調(diào)用服務(wù)端,獲取服務(wù)端的數(shù)據(jù)-服務(wù)端此時(shí)扮演的是數(shù)據(jù)庫角色。代碼設(shè)計(jì):dao數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論