




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、郭永峰 與你一起成長WebService大綱Webservice 概述&應(yīng)用場景Webservice 的標(biāo)準(zhǔn)和實(shí)現(xiàn)方式WebService 三要素soap&wsdl&uddiWebservice 開發(fā)規(guī)范JAX-WS 概述JAXM&SAAJ概述JAX-RS 概述JAX-WS案例:Webservice第一個(gè)入門程序wsdl說明書結(jié)構(gòu) Wsimport命令案例:通過Wsimport生成客戶端調(diào)用類案例:WebService 客戶端編寫兩個(gè)應(yīng)用程序業(yè)務(wù)層原理分析TCP/IP Monitor 監(jiān)控SOAP網(wǎng)絡(luò)請求Soap1.1協(xié)議網(wǎng)絡(luò)請求數(shù)據(jù)格式分析Soap1.1和soap1.2 的實(shí)現(xiàn)Soap1.1
2、和soap1.2 的請求頭Soap1.1和soap1.2 的區(qū)別webservice優(yōu)點(diǎn)&缺點(diǎn)什么是WebserviceWeb service 即web服務(wù),它是一種跨編程語言和跨操作系統(tǒng)平臺的遠(yuǎn)程調(diào)用技術(shù)即跨平臺遠(yuǎn)程調(diào)用技術(shù)。 Web service是一個(gè)平臺獨(dú)立的,低耦合的,自包含的、基于可編程的web的應(yīng)用程序,可使用開放的XML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個(gè)子集)標(biāo)準(zhǔn)來描述、發(fā)布、發(fā)現(xiàn)、協(xié)調(diào)和配置這些應(yīng)用程序,用于開發(fā)分布式的互操作的應(yīng)用程序。 Web Service為整個(gè)企業(yè)甚至多個(gè)組織之間的業(yè)務(wù)流程的集成提供了一個(gè)通用機(jī)制。Webservice 概述webservice的應(yīng)用場景訪問天
3、氣預(yù)報(bào)WebService 演示getSupportCity中獲取廣東的所有城市場景分析氣象局 web各個(gè)城市的天氣數(shù)據(jù)iOS 墨跡天氣android 墨跡天氣天氣網(wǎng) 2345天氣預(yù)報(bào) Webservice 的標(biāo)準(zhǔn)和實(shí)現(xiàn)方式采用標(biāo)準(zhǔn)SOAP(Simple Object Access Protocol) 協(xié)議傳輸,soap屬于w3c標(biāo)準(zhǔn)。Soap協(xié)議是基于http的應(yīng)用層協(xié)議,soap協(xié)議傳輸是xml數(shù)據(jù)。采用wsdl(Web Services Description Language)作為描述語言即webservice使用說明書,wsdl屬w3c標(biāo)準(zhǔn)。xml是webservice的跨平臺的基礎(chǔ)
4、,XML主要的優(yōu)點(diǎn)在于它既與平臺無關(guān),又與廠商無關(guān)。XSD,W3C為webservice制定了一套傳輸數(shù)據(jù)類型,使用xml進(jìn)行描述,即XSD(XML Schema Datatypes),任何編程語言寫的webservice接口在發(fā)送數(shù)據(jù)時(shí)都要轉(zhuǎn)換成webservice標(biāo)準(zhǔn)的XSD發(fā)送。當(dāng)前非SOAP協(xié)議的webService以輕量為首要目標(biāo),比如http rest方式也是webservice的一種方式,或者直接使用http自定義數(shù)據(jù)協(xié)議,比如http傳輸json數(shù)據(jù),http傳輸xml數(shù)據(jù)等。(如不理解先放著)WebService 三要素soapSOAP即簡單對象訪問協(xié)議(Simple Obj
5、ect Access Protocal) 是一種簡單的基于 XML 的協(xié)議,它使應(yīng)用程序通過 HTTP 來交換信息.簡單理解為soap=http+xml,就是通過HTTP發(fā)xml數(shù)據(jù)Soap協(xié)議版本主要使用soap1.1、soap1.2。SOAP不是webservice的專有協(xié)議,其他應(yīng)用協(xié)議也使用soap傳輸數(shù)據(jù)。例如,SMTP、tr069等。WsdlWSDL 是基于 XML 的用于描述Web Service及其函數(shù)、參數(shù)和返回值。通俗理解Wsdl是webservice的使用說明書 Uddi(了解)UDDI 是一種目錄服務(wù),通過它,企業(yè)可注冊并搜索 Web services。企業(yè)將自己提供的
6、Web Service注冊在UDDI,也可以使用別的企業(yè)在UDDI注冊的web service服務(wù),從而達(dá)到資源共享。UDDI旨在將全球的webservcie資源進(jìn)行共享,促進(jìn)全球經(jīng)濟(jì)合作。目前大部分企業(yè)使用webservice并不是必須使用UDDI,因?yàn)橛脩敉ㄟ^WSDL知道了web service的地址,可以直接通過WSDL調(diào)用webservice Webservice 開發(fā)規(guī)范JAVA 中共有三種 實(shí)現(xiàn)WebService 開發(fā)規(guī)范JAX-WS(JAX-RPC)JAXM & SAAJJAX-RSJAX-WS 概述JAX-WS 的全稱為 Java API for XML-Based Webs
7、ervices ,早期的基于SOAP 的JAVA 的Web 服務(wù)規(guī)范JAX-RPC(Java API For XML-Remote Procedure Call)目前已經(jīng)被JAX-WS 規(guī)范取代。從java5開始支持JAX-WS2.0版本,Jdk1.6.0_13以后的版本支持2.1版本,jdk1.7支持2.2版本。也就是說java提供了一個(gè)jar包,提供了API來實(shí)現(xiàn)webserviceJAXM & SAAJ概述JAXM(JAVA API For XML Message)主要定義了包含了發(fā)送和接收消息所需的APISAAJ(SOAP With Attachment API For Java,JS
8、R 67)是與JAXM 搭配使用的API,為構(gòu)建SOAP 包和解析SOAP 包提供了重要的支持,支持附件傳輸?shù)菾AXM & SAAJ 與JAX-WS 都是基于SOAP 的Web 服務(wù)相比之下JAXM&SAAJ 暴漏了SOAP更多的底層細(xì)節(jié),編碼比較麻煩而JAX-WS 更加抽象,隱藏了更多的細(xì)節(jié),更加面向?qū)ο?,?shí)現(xiàn)起來你基本上不需要關(guān)心SOAP 的任何細(xì)節(jié)JAX-RS 概述JAX-RS 是JAVA 針對REST(Representation State Transfer)風(fēng)格制定的一套Web 服務(wù)規(guī)范由于推出的較晚,該規(guī)范(JSR 311,目前JAX-RS 的版本為1.0)并未隨JDK1.6 一
9、起發(fā)行。案例:Webservice第一個(gè)入門程序( JAX-WS 實(shí)現(xiàn))需求:提供一個(gè)天氣的WebService服務(wù)器接口,以查詢天氣為例(畫圖)步驟創(chuàng)建一個(gè)SEI(Service Endpoint Interface)接口,本質(zhì)就是一個(gè)接口實(shí)現(xiàn)天氣接口,在類上添加Webservice注解(先不加,后面再加)發(fā)布:使用Endpoint的publish發(fā)布一個(gè)WebService服務(wù)測試Webservice:在瀏覽器中訪問 wsdl是webservice說明書wsdl 說明書結(jié)構(gòu) 服務(wù)視圖,webservice的服務(wù)結(jié)點(diǎn),它包括了服務(wù)端點(diǎn)為每個(gè)服務(wù)端點(diǎn)定義消息格式和協(xié)議細(xì)節(jié)服務(wù)端點(diǎn),描述 web
10、 service可被執(zhí)行的操作方法,以及相關(guān)的消息,通過binding指向portType定義一個(gè)操作(方法)的數(shù)據(jù)參數(shù)(可有多個(gè)參數(shù)) 定義 web service 使用的全部數(shù)據(jù)類型wsdl 說明書閱讀方式從下往上讀先找到服務(wù)視圖,通過binging找到protType,找到了protType就找到了我們要調(diào)用的webservice方法。wsimport是jdk自帶的webservice客戶端工具,可以根據(jù)wsdl文檔生成客戶端調(diào)用代碼(java代碼).當(dāng)然,無論服務(wù)器端的WebService是用什么語言寫的,都可以生成調(diào)用webservice的客戶端代碼,服務(wù)端通過客戶端代碼調(diào)用webs
11、ervice。 wsimport.exe位于JAVA_HOMEbin目錄下.常用參數(shù)為:-s - 將生成.java文件。(學(xué)習(xí))-d - 將生成.class文件。默認(rèn)參數(shù)。-p -將生成的類,放于指定的包下。(wsdlurl) - ,必須的參數(shù)。示例:C:/ wsimport s . 注意:-s不能分開,-s后面有個(gè)小點(diǎn)Wsimport命令案例:通過Wsimport生成客戶端調(diào)用類在Eclipse中創(chuàng)建一個(gè)空的java工程為wsimport,此工程作為存放客戶端代碼。cmd命令行進(jìn)入此wsimport 工程的src目錄,輸入以下命令:wsimport s . 注:可以通過java versio
12、n檢查你當(dāng)前的版本號保證是jdk1.6以上。Jdk1.6.0_13以后的版本支持jaxws2.1。案例:WebService 客戶端編寫步驟創(chuàng)建一個(gè)ws_cleint的java項(xiàng)目將wsimport工程src下生成.java文件代碼Copy到webservice客戶端工程 創(chuàng)建一個(gè)WeatherClient類,添加main方法創(chuàng)建服務(wù)窗口通過服務(wù)對象找到服務(wù)端點(diǎn)調(diào)用webservice的方法webserivce客戶端(可以由任何一個(gè)公司實(shí)現(xiàn))天氣預(yù)報(bào)WebSerivce天氣接口獲取城市接口業(yè)務(wù)層(客戶端)UIController/ActionSerivcedb業(yè)務(wù)層(氣象局)UIControl
13、ler/ActionSerivcedb兩個(gè)應(yīng)用程序業(yè)務(wù)層原理分析開發(fā)中通過客戶端的控制/Action層來調(diào)用服務(wù)端的service層TCP/IP Monitor 監(jiān)控Soap協(xié)議網(wǎng)絡(luò)請求使用TCP/IP Monitor可以監(jiān)視tcp/ip協(xié)議的報(bào)文內(nèi)容,由于http是基于Tcp的應(yīng)用協(xié)議,而webservice是基于http實(shí)現(xiàn),所以通過tcp/ip monitor可以監(jiān)視webservice請求及響應(yīng)的內(nèi)容。 案例:使用Eclipse的TCP/IP Monitor監(jiān)控監(jiān)控Soap協(xié)議網(wǎng)絡(luò)請求講解代理服務(wù)器步驟點(diǎn)擊Window - show View - other - 搜索TCP/IP Mo
14、nitor點(diǎn)擊TCP/IP Monitor 右邊小三角,點(diǎn)擊Properties(左圖)設(shè)置代理端口、監(jiān)聽IP、監(jiān)聽端口,點(diǎn)OK(中圖)然后選中后,點(diǎn)擊start開啟監(jiān)聽(右圖)可以在瀏覽器和客戶端訪問WebService(使用客戶端是,要更改實(shí)現(xiàn)里面的端口為代理端口)Soap1.1協(xié)議網(wǎng)絡(luò)請求數(shù)據(jù)格式分析Soap是基本http請求,他的請求和響應(yīng)頭的響應(yīng)類型都是text/xml一般的請求,請求類型是text/html注:JAX-WS 這里使用的2.2.9版本, jdk1.7支持2.2版本請求體:北京響應(yīng)體雨Soap1.1協(xié)議網(wǎng)絡(luò)請求數(shù)據(jù)格式分析Soap1.1 和 soap1.2 的實(shí)現(xiàn)SOA
15、P協(xié)議有兩個(gè)版本,1.1和1.2發(fā)布SOAP1.2服務(wù)端(掌握)在實(shí)現(xiàn)類中加入如下注解BindingType(SOAPBinding.SOAP12HTTP_BINDING)如果Jaxws不支持SOAP1.2服務(wù)端發(fā)布,說明JDK版本較低在1.7以下,可在服務(wù)端引入第三方JAR(jaxws-ri-2.2.8)(網(wǎng)上下載即可)但現(xiàn)在1.8jdk已經(jīng)支持soap1.2,可以不用加第三方j(luò)ar包SOAP1.2POST /weather HTTP/1.1Accept: application/soap+xml, multipart/relatedContent-Type: application/soa
16、p+xml; charset=utf-8;action= User-Agent: JAX-WS RI 2.2.9-b130926.1035 svn-revision#5f6196f2b90e9460065a4c2f4e30e065b245e51eHost: :54321Connection: keep-aliveContent-Length: 207北京SOAP1.1POST /weather HTTP/1.1Accept: text/xml, multipart/relatedContent-Type: text/xml; charset=utf-8SOAPAction: User-Agent: JAX-WS RI 2.2.9-b130926.1035 svn-revision#5f6196f2b90e9460065a4c2f4e30e065b245e51eHost: :54321Connection: keep-aliveContent-Length: 209北京SOAP1.1和SOAP1.2 的請求頭SOAP1.1和SOAP1.2區(qū)別相同點(diǎn):請求發(fā)送方式相同:都是使用POST協(xié)議內(nèi)容相同:都有Envelope和Body標(biāo)簽不同點(diǎn):數(shù)據(jù)格式不同:content-type不同SOAP1.1:text/x
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人防經(jīng)費(fèi)報(bào)告范文
- 2025年度銀行資金監(jiān)管與合規(guī)性評估專項(xiàng)協(xié)議
- 2025年度股權(quán)代持股權(quán)繼承協(xié)議書:OO股東代持PP公司股權(quán)的繼承合同
- 二零二五年度實(shí)習(xí)生實(shí)習(xí)期間實(shí)習(xí)成果獎(jiǎng)勵(lì)合同
- 二零二五年度倉儲貨物保險(xiǎn)及索賠服務(wù)合同
- 2025年度餐廳裝修合同(含餐廳燈光設(shè)計(jì)與氛圍營造)
- 2025年度高科技企業(yè)員工年勞動合同
- 2025年度美團(tuán)外賣平臺食品安全代運(yùn)營合作協(xié)議
- 貨代公司知識培訓(xùn)課件
- 2025黑龍江中鐵特貨物流股份有限公司招聘75人筆試參考題庫附帶答案詳解
- 湖北省2025屆高三下學(xué)期2月調(diào)考語文試題及參考答案
- 2025年湖南國防工業(yè)職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫完整版
- 2025年《地陪導(dǎo)游服務(wù)程序》公開課標(biāo)準(zhǔn)教案
- 愛耳日完整課件
- 云南省2025年中考化學(xué)第三次模擬考試試題含答案
- 生物醫(yī)藥研發(fā)實(shí)驗(yàn)室的安全風(fēng)險(xiǎn)評估與控制
- 合肥科技職業(yè)學(xué)院單招計(jì)算機(jī)類考試復(fù)習(xí)題庫(含答案)
- 系統(tǒng)集成項(xiàng)目售后服務(wù)方案
- 2018-2022年北京市中考真題數(shù)學(xué)試題匯編:填空壓軸(第16題)
- 過敏性休克完整版本
- 2024年益陽醫(yī)學(xué)高等??茖W(xué)校單招職業(yè)適應(yīng)性測試題庫及答案解析
評論
0/150
提交評論