版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第五卷: XML和WebService服務(wù)簡(jiǎn)單對(duì)象訪問協(xié)議SOAP與CXF開發(fā)WebService,2,回顧,了解Apache Axis簡(jiǎn)介 熟悉Axis應(yīng)用模型 掌握安裝Axis 掌握運(yùn)用 Axis發(fā)布Web服務(wù) 了解取消Web服務(wù) 了解Axis2,3,目標(biāo),了解SOAP概念 理解SOAP消息的結(jié)構(gòu) 論述SOAP的優(yōu)點(diǎn) 了解SOAP的實(shí)現(xiàn) 熟悉CXF的下載和使用 掌握使用CXF開發(fā)WebService 掌握使用動(dòng)態(tài)客戶端訪問WebService,4,SOAP簡(jiǎn)介,是為了解決互聯(lián)網(wǎng)中分布式計(jì)算所存在的互操作性問題而出現(xiàn)的。 采用:HTTP和XML HTTP用于SOAP消息的傳輸 XML是SOA
2、P的編碼模式 SOAP 以XML形式提供了一個(gè)簡(jiǎn)單、輕量的用于在非集中、分布式環(huán)境中交換結(jié)構(gòu)化和對(duì)象信息的機(jī)制。,5,SOAP組成,組成: SOAP封裝(Envelope),其定義了一個(gè)整體框架用來表示消息中包含什么內(nèi)容,誰來處理內(nèi)容及處理是可選或是必需的; SOAP編碼規(guī)則(encoding rules),定義用以交換應(yīng)用程序的數(shù)據(jù)類型實(shí)例的一系列機(jī)制 SOAP RPC表示,定義一個(gè)用來表示遠(yuǎn)程過程調(diào)用和應(yīng)答的協(xié)定。 SOAP綁定(binding),SOAP綁定使用底層協(xié)議傳送信息,主要描述SOAP消息如何包含在HTTP消息中進(jìn)行傳送,6,SOAP設(shè)計(jì)目標(biāo),主要目標(biāo)是作為一個(gè)簡(jiǎn)單輕便的可擴(kuò)展
3、框架,以下傳統(tǒng)的消息系統(tǒng)和分布式系統(tǒng)的性質(zhì)不是SOAP規(guī)范范圍之內(nèi): 分布式垃圾收集 對(duì)象引用 激活機(jī)制,7,SOAP消息,包含3個(gè)元素的XML文檔信息項(xiàng),SOAP Envelope,Header Block A,Header Block B,SOAP Header,SOAP Body,SOAP 消息格式,SOAP消息的根元素,可選元素,是一種以非 集中的方式增加SOAP 消息功能的通用手法, 其每個(gè)子元素都稱為 Header block,描述由誰來處理及 該處理是可選或必需 的。,消息體,8,SOAP消息示例,Header block,旅行預(yù)訂請(qǐng)求SOAP,9,SOAP消息交換模式,SOAP
4、消息是從發(fā)送者向接收者單向傳送的。,原始發(fā)送結(jié)點(diǎn) A,中間節(jié)點(diǎn) B,中間節(jié)點(diǎn) C,最終接收結(jié)點(diǎn) D,消息路徑:由一個(gè)或多個(gè)處理SOAP消息的中間節(jié)點(diǎn)構(gòu)成。SOAP定義三個(gè)屬性來 控制中間節(jié)點(diǎn)和最終接收結(jié)點(diǎn)處理Header block:role、relay和mustUnderstand role:確定Header block所針對(duì)的結(jié)點(diǎn) mustUnderStand:指示在Header Block未被認(rèn)出的情況下該節(jié)點(diǎn)是否可以忽略 Header Block relay: 指示該節(jié)點(diǎn)是發(fā)送還是放棄未被認(rèn)出的可選Header,為通過的消息提供消息濾波能力,處理Header 部分,處理Body部分,1
5、0,SOAP處理模型,當(dāng)前SOAP節(jié)點(diǎn),利用role屬性處理所需 Headerblock集合,是否能處理 mustUnderstand=true,錯(cuò)誤消息,N,Y,處理消息(刪除被處理的 HeaderBlock),到最終接收節(jié)點(diǎn)?,下一節(jié)點(diǎn),N,Y,11,一個(gè)接收SOAP消息的SOAP應(yīng)用程序必須按順序執(zhí)行以下的 步驟處理消息: 識(shí)別應(yīng)用程序需要的SOAP消息的所有部分; 驗(yàn)證消息中的固定部分。如果不支持這些消息就放棄,同時(shí)還可以 忽略消息的可選部分而不影響處理的結(jié)果; 如果該SOAP應(yīng)用程序不是消息的最終目的地,則在轉(zhuǎn)發(fā)消息之前 刪除第1步中識(shí)別的所有部分,SOAP處理過程-1,12,SOA
6、P處理過程-2,中間節(jié)點(diǎn)在處理消息時(shí): 需要理解使用的交換方式(單向、請(qǐng)求-應(yīng)答、多路發(fā)送等) 需要了解消息模式中接收方的任務(wù) 需要了解使用的RPC機(jī)制、數(shù)據(jù)的表現(xiàn)方法或 編碼,以及其它的語義,13,消息模式,發(fā)送端,接收端R,單向,發(fā)送端,接收端R,請(qǐng)求-響應(yīng),發(fā)送端,R,R,R,R,14,傳輸協(xié)議獨(dú)立性,SOAP協(xié)議的一個(gè)重要特點(diǎn)它獨(dú)立于底層傳輸機(jī)制 為了確保各種SOAP應(yīng)用和基礎(chǔ)結(jié)構(gòu)之間的互操作性,定義協(xié)議綁定是必要的 SOAP1.1規(guī)范定義了基于HTTP的協(xié)議綁定方式,利用HTTP請(qǐng)求和響應(yīng)消息來進(jìn)行SOAP消息交換,15,SOAP HTTP綁定,請(qǐng)求,響應(yīng),POST/path/ban
7、k.asmx HTTP/1.1 Content-Type:text/xml SOAPAction:”urn:banking:transfer” soap:Envelope,HTTP/1.1 200OK Content-Type:text/xml Content-Length:nnnn SOAp:Envelope,HTTP/1.1 500 server Error Content-Type:text/xml Content-Length:nnnn SOAp:Envelope,必須使用POST請(qǐng)求,必須包含標(biāo)頭,消息意圖,16,基于HTTP SOAP,HTTP不是一個(gè)可靠的傳輸協(xié)議 HTTP協(xié)議基
8、于請(qǐng)求、響應(yīng)模型,客戶端需要等待應(yīng)答消息的接收完成才能繼續(xù)執(zhí)行(同步),選擇合適的傳輸協(xié)議,17,基于JMS SOAP,服務(wù)請(qǐng)求,服務(wù)提供,客戶端應(yīng)用,Web服務(wù)API (JAX-RPC),Web服務(wù)引擎 AXIS,JMS綁定支持,JMS,服務(wù)實(shí)現(xiàn),Web服務(wù)API (JAX-RPC),Web服務(wù)引擎 AXIS,SOAP消息,JMS綁定支持,JMS,JMS消息,CXF WebService開發(fā),開發(fā)環(huán)境 MyEclipse Tomcat Jdk CXF2.4.0版,18,一、準(zhǔn)備工作,1、 CXF官方網(wǎng)址:/ 2、 Jar包下載地址:http:/www.
9、/dyn/closer.cgi?path=/cxf/2.4.0/apache-cxf-2.4.0.zip 將下來的jar包解壓后,目錄大概就這樣 bin目錄提供的是常用的dos控制臺(tái)命令工具 docs 幫助文檔 lib jar包、依賴庫 lib-samples 也是jar包,有jetty、httpclients、junit等jar包 modules 打包好的WebService模塊 samples示例demo,19,一、準(zhǔn)備工作,3、源碼下載:/dyn/closer.cgi?path=/cxf/2.4.0/apache-cxf-2.4
10、.0-src.zip有時(shí)候你可以看看源碼,對(duì)你了解和學(xué)習(xí)CXF WebService都會(huì)有作用。 4、CXF的特性 有代碼生成工具:Java to WSDL;WSDL to Java;XSD to WSDL;WSDL to XML;WSDL to SOAP;WSDL to Service; 支持 JAX-WS、 JAX-WSA、JSR-181 和 SAAJ;支持 SOAP 1.1、1.2、WS-I BasicProfile、WS-Security、WS-Addressing、WS-RM 和 WS-Policy;支持 WSDL 1.1 、2.0;支持 MTOM;、JavaScript、通過 Yo
11、ko 支持 CORBA;通過 Tuscany 支持 SCA;通過 ServiceMix 支持 JBI 內(nèi)置Jetty應(yīng)用服務(wù)器,二、CXF 入門實(shí)例,步驟1.新建java工程cxfservice導(dǎo)入CXF所依賴的核心jar包 詳見課本p414頁 請(qǐng)參考小課課件lib目錄下的jar包,直接構(gòu)建到Java工程中即可,二、CXF 入門實(shí)例,步驟1:定義DTO(數(shù)據(jù)傳輸對(duì)象)User類,二、CXF 入門實(shí)例,步驟1:定義DTO(數(shù)據(jù)傳輸對(duì)象)User類,二、CXF 入門實(shí)例,步驟2:編寫WebService服務(wù)接口,二、CXF 入門實(shí)例,步驟3:為WebService接口提供實(shí)現(xiàn)類,步驟3:為WebS
12、ervice接口提供實(shí)現(xiàn)類,二、CXF 入門實(shí)例,經(jīng)過以上3步,使用cxf開發(fā)WebService所需的服務(wù)提供類都已經(jīng)開發(fā)完了,下面使用一個(gè)簡(jiǎn)單的主類來發(fā)布WebServie。cxf支持2種常用的發(fā)布WebService的方式: 1.使用JAX-WS所提供的Endpoint發(fā)布WebService。(推薦使用方式,本課程使用此方式) 2.使用CXF自身提供的JaxWsServerFactoryBean工廠類發(fā)布WebService。(候選方式,不推薦),二、CXF 入門實(shí)例,步驟4:編寫服務(wù)器類代碼,發(fā)布WebService服務(wù),二、CXF 入門實(shí)例,運(yùn)行結(jié)果,二、CXF 入門實(shí)例,在Web
13、Service發(fā)布成功之后,使用瀏覽器來訪問該WebService所對(duì)應(yīng)的WSDL,在瀏覽器地址欄中輸入http:/localhost:9999/crazyit?wsdl,結(jié)果如下:,二、CXF 入門實(shí)例,如果wsdl查看成功,客戶端即可遠(yuǎn)程調(diào)用該WebService,編寫客戶端調(diào)用WebService服務(wù)提供的方法,二、CXF 入門實(shí)例,客戶端執(zhí)行結(jié)果,三、CXF 開發(fā)動(dòng)態(tài)客戶端調(diào)用已發(fā)布WebService服務(wù),準(zhǔn)備工作: 動(dòng)態(tài)客戶端訪問,在這種方式下,我們模擬客戶端無法接觸WebService服務(wù)提供者的情形。 使用CXF開發(fā)動(dòng)態(tài)客戶端需要借助于wsdl2java工具,此命令位于apache-cxf-3.0.2bin目錄下,進(jìn)入該目錄,運(yùn)行以下命令: wsdl2java -frontend jaxws21 http:/localhost:9999/crazyit?wsdl 注意:一定要保證你的服務(wù)已經(jīng)成功發(fā)布,三、CXF開發(fā)動(dòng)態(tài)客戶端,步驟1:進(jìn)入cmd,運(yùn)行,如下圖所示即為成功,可以在bin目錄下看到自動(dòng)生成的org文件夾,三、CXF開發(fā)動(dòng)態(tài)客戶端,步驟2:新建java工程DynaCXFService,然后直接復(fù)制bin目錄下的org文件夾到src目錄下,如下圖示:,三、CXF開
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高職第一學(xué)年(財(cái)務(wù)管理)學(xué)科競(jìng)賽選拔測(cè)試卷
- 2025年大學(xué)護(hù)理(體溫測(cè)量技術(shù))試題及答案
- 2025年高職旅游服務(wù)與管理(旅游投訴處理)試題及答案
- 2025年高職安全工程技術(shù)(事故預(yù)防技術(shù))試題及答案
- 2025年大學(xué)大一(基礎(chǔ)醫(yī)學(xué))人體解剖學(xué)基礎(chǔ)試題及答案
- 2025年高職會(huì)計(jì)軟件應(yīng)用(賬務(wù)處理)試題及答案
- 2025年大學(xué)(航空航天工程)航空概論進(jìn)階綜合測(cè)試卷及評(píng)分標(biāo)準(zhǔn)
- 2025年中職口腔護(hù)理(口腔清潔護(hù)理)試題及答案
- 2025年高職母乳喂養(yǎng)指導(dǎo)(技巧傳授)試題及答案
- 2025年大學(xué)大四(藥學(xué))藥物分析綜合測(cè)試試題及答案
- 黃河鯉魚規(guī)?;鷳B(tài)養(yǎng)殖項(xiàng)目可行性研究報(bào)告完整立項(xiàng)報(bào)告
- (高清版)DG∕TJ 08-2299-2019 型鋼混凝土組合橋梁設(shè)計(jì)標(biāo)準(zhǔn)
- 瞼板腺炎的健康宣教
- 慢性阻塞性肺疾病診治指南課件
- 勞動(dòng)與社會(huì)保障法-002-國開機(jī)考復(fù)習(xí)資料
- 工廠車間流水線承包合同協(xié)議書范文
- 客房服務(wù)員理論知識(shí)考試題及答案
- HG/T 6262-2024 再生磷酸鐵(正式版)
- 汽輪機(jī)調(diào)速系統(tǒng)的組成和工作原理(1)課件
- 國開大學(xué)2020年01月2136《管理會(huì)計(jì)》期末考試參考答案
- 企業(yè)上市對(duì)人力資源管理的要求及目前人力資源部現(xiàn)狀分析
評(píng)論
0/150
提交評(píng)論