webservice張孝祥課件_第1頁
webservice張孝祥課件_第2頁
webservice張孝祥課件_第3頁
webservice張孝祥課件_第4頁
webservice張孝祥課件_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、致力于讓技術(shù)學習變得輕松和簡單致力于讓技術(shù)學習變得輕松和簡單! !程序員網(wǎng)校webservice-張孝祥資訊交流網(wǎng) 1webservicewebservice專題專題講師:講師:張孝祥程序員網(wǎng)校致力于讓技術(shù)學習變得輕松和簡單致力于讓技術(shù)學習變得輕松和簡單! !webservice-張孝祥資訊交流網(wǎng) 2l對每個程序員來說,沒有學不會的技術(shù),只是沒有那么多的時間與精力!如果能用最少的時間學透自己想要的技術(shù),是程序員感到最幸福的事情!l程序員要學的知識細節(jié)實在太多,程序員要把一個知識完全搞明白所走的彎路太多,一個程序員積累的知識量等到可以從容面對工作時,又發(fā)現(xiàn)自己的體力已經(jīng)

2、被前些年的學習和摸索掏空和耗盡了!每個程序員都在經(jīng)歷這樣的輪回,程序員網(wǎng)校在想:“能否讓程序員的職業(yè)生涯更長些?程序員的工作變得輕松些?”l如果要想讓程序員的工作變得簡單些,首先就應該讓技術(shù)學習變得輕松!如果一個人把自己通過一年精心梳理出來的某個經(jīng)驗一針見血地用一個小時交給了其他的千萬人,其他人豈不節(jié)省了很多很多的寶貴時間嗎?如果有很多有經(jīng)驗的人士都來開放、交流、共享自己的經(jīng)驗,程序員的工作還會那么辛苦嗎?l程序員網(wǎng)校必將精心制作每個技術(shù)點的文字與視頻教程,盡可能一針見血地講解清楚問題的本質(zhì)和最大限度地節(jié)省學習者的學習時間,讓程序員把富余的時間投入到工作和生活中去,為提高程序員的生活狀況盡最大

3、努力!程序員網(wǎng)校的發(fā)展理念程序員網(wǎng)校致力于讓技術(shù)學習變得輕松和簡單致力于讓技術(shù)學習變得輕松和簡單! !webservice-張孝祥資訊交流網(wǎng) 3徹底征服面試官之webservice的功能(是什么)lwebservice是一種跨編程語言和跨操作系統(tǒng)平臺的遠程調(diào)用技術(shù) 所謂遠程調(diào)用,就是一臺計算機a上的一個程序可以調(diào)用到另外一臺計算機b上的一個對象的方法,譬如,銀聯(lián)提供給商場的pos刷卡系統(tǒng)(采用交互提問的方式來加深大家對此技術(shù)的理解)。遠程調(diào)用技術(shù)有什么用呢?商場的pos機轉(zhuǎn)賬調(diào)用的轉(zhuǎn)賬方法的代碼是在銀行服務器上,還是在商場的pos機上呢?什么情況下可能用到遠程調(diào)用技術(shù)呢?例如,amazon,天

4、氣預報系統(tǒng),淘寶網(wǎng),校內(nèi)網(wǎng),百度等把自己的系統(tǒng)服務以webservice服務的形式暴露出來,讓第三方網(wǎng)站和程序可以調(diào)用這些服務功能,這樣擴展了自己系統(tǒng)的市場占有率,往大的概念上吹,就是所謂的soa應用。 所謂跨編程語言和跨操作平臺,就是說服務端程序采用java編寫,客戶端程序則可以采用其他編程語言編寫,反之亦然!跨操作系統(tǒng)平臺則是指服務端程序和客戶端程序可以在不同的操作系統(tǒng)上運行。 除了webservice外,常見的遠程調(diào)用技術(shù)還有rmi(remote method invoke)和corba,由于webservice的跨平臺和跨編程語言特點,因此比其他兩種技術(shù)應用更為廣泛,但性能略低。程序員

5、網(wǎng)校致力于讓技術(shù)學習變得輕松和簡單致力于讓技術(shù)學習變得輕松和簡單! !webservice-張孝祥資訊交流網(wǎng) 4徹底征服面試官之webservice的調(diào)用原理lwebservice使用soap協(xié)議實現(xiàn)跨編程語言和跨操作系統(tǒng)平臺webservice采用http協(xié)議傳輸數(shù)據(jù),采用xml格式封裝數(shù)據(jù)(即xml中說明調(diào)用遠程服務對象的哪個方法,傳遞的參數(shù)是什么,以及服務對象的返回結(jié)果是什么)。webservice通過http協(xié)議發(fā)送請求和接收結(jié)果時,發(fā)送的請求內(nèi)容和結(jié)果內(nèi)容都采用xml格式封裝,并增加了一些特定的http消息頭,以說明http消息的內(nèi)容格式,這些特定的http消息頭和xml內(nèi)容格式就是

6、soap協(xié)議協(xié)議(simple object access protocol,簡單對象訪問協(xié)議) 。soap協(xié)議 = http協(xié)議 + xml數(shù)據(jù)格式 soap協(xié)議是基于http協(xié)議的,兩者的關(guān)系就好比高速公路是基于普通公路改造的,在一條公路上加上隔離欄后就成了高速公路。商店的服務員只要收到了錢就給客戶提供貨物,商店服務員不用關(guān)心客戶是什么性質(zhì)的人,客戶也不用關(guān)心商店服務員是什么性質(zhì)的人。同樣, webservice客戶端只要能使用http協(xié)議把遵循某種格式的xml請求數(shù)據(jù)發(fā)送給webservice服務器, webservice服務器再通過http協(xié)議返回遵循某種格式的xml結(jié)果數(shù)據(jù)就可以了,

7、webservice客戶端與服務器端不用關(guān)心對方使用的是什么編程語言。http協(xié)議和xml是被廣泛使用的通用技術(shù),各種編程語言對http協(xié)議和xml這兩種技術(shù)都提供了很好的支持,webservice客戶端與服務器端使用什么編程語言都可以完成soap的功能,所以,webservice很容易實現(xiàn)跨編程語言,跨編程語言自然也就跨了操作系統(tǒng)平臺。程序員網(wǎng)校致力于讓技術(shù)學習變得輕松和簡單致力于讓技術(shù)學習變得輕松和簡單! !webservice-張孝祥資訊交流網(wǎng) 5徹底征服面試官之 webservice調(diào)用之前的工作lwsdl文件 好比我們?nèi)ド痰曩I東西,首先要知道商店里有什么東西可買,然后再來購買,商家的

8、做法就是張貼廣告海報。 webservice客戶端要調(diào)用一個webservice服務,首先要有知道這個服務的地址在哪,以及這個服務里有什么方法可以調(diào)用,所以,webservice務器端首先要通過一個wsdl文件來說明自己家里有啥服務可以對外調(diào)用,服務是什么(服務中有哪些方法,方法接受的參數(shù)是什么,返回值是什么),服務的網(wǎng)絡地址用哪個url地址表示,服務通過什么方式來調(diào)用。 wsdl(webservice description language)是基于xml格式的,它是webservice客戶端和服務器端都能理解的標準格式,其中描述的信息可以分為what,where,how等部分! wsdl文

9、件保存在web服務器上,通過一個url地址就可以訪問到它。客戶端要調(diào)用一個webservice服務之前,要知道該服務的wsdl文件的地址。webservice服務提供商可以通過兩種方式來暴露它的wsdl文件地址:注冊到uddi服務器,以便被人查找直接告訴給客戶端調(diào)用者,例如,在自己網(wǎng)站給出信息或郵件告訴。程序員網(wǎng)校致力于讓技術(shù)學習變得輕松和簡單致力于讓技術(shù)學習變得輕松和簡單! !webservice-張孝祥資訊交流網(wǎng) 6徹底征服面試官之webservice的工作過程uddi注冊中心注冊中心天氣天氣webservicewebservice消費者消費者1 創(chuàng)建web service, 定義wsdl

10、; 部署web service, uri標識;股票股票webservice2 把自己注冊到uddi via soapwebservice消費者消費者3 查找web service via soap4 使用web service via soapwebservice提供者提供者(替代2和3)直接告知wsdl的url程序員網(wǎng)校致力于讓技術(shù)學習變得輕松和簡單致力于讓技術(shù)學習變得輕松和簡單! !webservice-張孝祥資訊交流網(wǎng) 7徹底征服面試官之webservice的開發(fā)應用lwebservice開發(fā)可以分為服務器端開發(fā)和客戶端開發(fā)兩個方面: 把公司內(nèi)部系統(tǒng)的業(yè)務方法發(fā)布成webservice服

11、務,供遠程合作單位和個人調(diào)用。(借助一些webservice框架可以很輕松地把自己的業(yè)務對象發(fā)布成webservice服務,java方面的典型webservice框架包括:axis,xfire,cxf等,java ee服務器通常也支持發(fā)布webservice服務,例如jboss。這框架應用不是學習的重點,看看相關(guān)的技術(shù)手冊都很輕松地掌握,關(guān)鍵還是要了解webservice的工作原理。) 調(diào)用別人發(fā)布的webservice服務,大多數(shù)人從事的開發(fā)都屬于這個方面,例如,調(diào)用天氣預報webservice服務。(使用廠商的wsdl2java之類的工具生成靜態(tài)調(diào)用的代理類代碼;使用廠商提供的客戶端編程a

12、pi類;使用sun公司早期標準的jax-rpc開發(fā)包;使用sun公司最新標準的jax-ws開發(fā)包。)程序員網(wǎng)校致力于讓技術(shù)學習變得輕松和簡單致力于讓技術(shù)學習變得輕松和簡單! !webservice-張孝祥資訊交流網(wǎng) 8徹底征服面試官之webservice的客戶端編程原理l代理圖我們給這各類webservice客戶端api傳遞wsdl文件的url地址,這些api就會創(chuàng)建出底層的代理類,我調(diào)用這些代理,就可以訪問到webservice服務。代理類把客戶端的方法調(diào)用變成soap格式的請求數(shù)據(jù)再通過http協(xié)議發(fā)出去,并把接收到的soap數(shù)據(jù)變成返回值返回。程序員網(wǎng)校致力于讓技術(shù)學習變得輕松和簡單致力

13、于讓技術(shù)學習變得輕松和簡單! !webservice-張孝祥資訊交流網(wǎng) 9webservice客戶端編程工具生成靜態(tài)代理類方式lxfire的wsgen還需要額外導入ant.jar包laxis的wsdl2java寫批處理或直接在eclipse中運行這個類ljdk6的wsimportlcxf的程序員網(wǎng)校致力于讓技術(shù)學習變得輕松和簡單致力于讓技術(shù)學習變得輕松和簡單! !webservice-張孝祥資訊交流網(wǎng) 10webservice客戶端編程動態(tài)代理類方式l使用jax-rpc 第一步是創(chuàng)建xxx.service實例對象 調(diào)用getport返回代理,客戶端的接口要實現(xiàn)remote接口,因為客戶端代理是

14、用java技術(shù)生成的,java生成的遠程調(diào)用的代理必須實現(xiàn)remote接口,即我實現(xiàn)的代理靠的是java的remote技術(shù)。l使用jax-ws 第一步就是創(chuàng)建出javax.xml.ws.service實例對象程序員網(wǎng)校致力于讓技術(shù)學習變得輕松和簡單致力于讓技術(shù)學習變得輕松和簡單! !webservice-張孝祥資訊交流網(wǎng) 11webservice客戶端編程動態(tài)方法調(diào)用(dii)l使用jax-rpc第一步是創(chuàng)建xxx.service實例對象調(diào)用getcall返回call對象,call的invoke實現(xiàn)動態(tài)調(diào)用。l使用jax-ws第一步就是創(chuàng)建出javax.xml.ws.service實例對象程序

15、員網(wǎng)校致力于讓技術(shù)學習變得輕松和簡單致力于讓技術(shù)學習變得輕松和簡單! !webservice-張孝祥資訊交流網(wǎng) 12webservice客戶端編程用socket編程方式調(diào)用程序員網(wǎng)校致力于讓技術(shù)學習變得輕松和簡單致力于讓技術(shù)學習變得輕松和簡單! !webservice-張孝祥資訊交流網(wǎng) 13徹底征服面試官之webservice框架的底層實現(xiàn)原理l技術(shù)實現(xiàn)原理:各類webservice框架的本質(zhì)就是一個大大的servlet,當遠程調(diào)用客戶端給它通過http協(xié)議發(fā)送過來soap格式的請求數(shù)據(jù)時,它分析這個數(shù)據(jù),就知道要調(diào)用哪個java類的哪個方法,于是去查找或創(chuàng)建這個對象,并調(diào)用其方法,再把方法返

16、回的結(jié)果包裝成soap格式的數(shù)據(jù),通過http響應消息回給客戶端。程序員網(wǎng)校致力于讓技術(shù)學習變得輕松和簡單致力于讓技術(shù)學習變得輕松和簡單! !webservice-張孝祥資訊交流網(wǎng) 14axisl步驟: 1.首先直接把axis包中webapps目錄下的axis例子程序復制到tomcat中,就配置好了axis的服務器端環(huán)境 2.寫好一個服務類,將.java復制一份,改名為jws后介紹一下jws的即時發(fā)布技術(shù)。 3.讀幫助文檔,參照docs目錄下的userguide目下中的第三個例子,獲得一份wsdd文件,然后進行修改。 4.使用adminclient進行發(fā)布,需要使用set classpath=

17、%classpath%;和拖動的方式逐一加入各個jar包,更好的辦法是編寫一個批處理,設置axis_lib=,然后設置classpath,然后用%1 %2 %3 %4等執(zhí)行adminclient。更好的方式是將所有jar包導入到eclispe中,再eclipse中運行adminclient將更簡捷) 5.給大家看發(fā)布后的結(jié)果,也就是生成了server-config.wsdd文件,要重新啟動應用程序,才會生效。 6.直接訪問axis的核心servlet映射的url地址(去掉*),可以看到部署的所有服務,看wsdl文件,說明wsdl文件的作用。 7.使用jdk6自帶的wsimport生成客戶端,報

18、告錯誤,然后修改server-config.wsdd文件,在service中增加style=document屬性,重啟動程序再次執(zhí)行,成功搞定。比較兩次的wsdl文件不相同。演示將wsdl保存到本地也是可以的,說清楚只要得到wsdl文件或其url地址,都可以知道對方的服務如何調(diào)用了。程序員網(wǎng)校致力于讓技術(shù)學習變得輕松和簡單致力于讓技術(shù)學習變得輕松和簡單! !webservice-張孝祥資訊交流網(wǎng) 15xfirel步驟:1.參照手冊做第一個webservice服務器端例子,可以用config初始化參數(shù)來修改配置文件的位置,文件路徑是相對當前web.xml文件的位置。1)編寫服務類 2)將服務類注冊和部署成webservice2.針對xfire項目,訪問/mywebapp/services,可以驗證xfire是否配置正常。程序員網(wǎng)校致力于讓技術(shù)學習變得輕松和簡單致力于讓技術(shù)學習變得輕松和簡單! !webservice-張孝祥資訊交流網(wǎng) 16jax-ws ri程序員網(wǎng)校致力于讓技術(shù)學習變得輕松和簡單致力于讓技術(shù)學習變得輕松和簡單! !webservice-張孝祥資訊交流網(wǎng) 1

溫馨提示

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

評論

0/150

提交評論