版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 WebServiceWebService-CXF-CXF趙慶軒高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 什么是CXFlApache CXF = Celtix + Xfirel支持多種協(xié)議:SOAP1.1,1,2XML/HTTPCORBA(Common Object Request Broker Architecture公共對象請求代理體系結(jié)構(gòu),早期語言使用的WS。C,c+,C#) 并可以與Spring進(jìn)行快速無縫的整合靈活的部署:可以運行在Tomcat,Jboss,Jetty(內(nèi)置),IBMW
2、S,BeaWL上面。高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 什么是CXF:高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 CXF的安裝及配置高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 CXF的結(jié)構(gòu):高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 下載完成后將其解壓到某個目錄下:高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 安裝CXF的其他支持項目:lAntlTomcatl并設(shè)置以下環(huán)境變量:JAVA_HOME CXF_HOMEANT_HOMECATALINA_H
3、OMEPath = %JAVA_HOME%bin;%CXF_HOME%bin;%CATALINA_HOME%bin;%ANT_HOME%binCLASSPATH=.;%CXF_HOME%libcxf-manifest.jar;.buildclasses高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 用ANT來構(gòu)造第一個CXF示例:l在cxf_homesamplesjava_first_pojo目錄下啟動服務(wù)器:在命令行模式下進(jìn)入上述目錄:執(zhí)行 以下命令 ant serverl在同一目錄下打開新命令行窗口運行:ant client上面的代碼,其實就是通過ant工具對源代碼
4、進(jìn)行編譯和運行。如果能編譯通過,將會顯示build success.高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 查看它的源代碼并修改運行:高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 用ANT將它發(fā)布到Tomcat服務(wù)器上:l1、執(zhí)行ant clean清除以前生成的代碼l2、執(zhí)行ant war打包此應(yīng)用。l3、執(zhí)行ant deploy Dtomcat=true將項目發(fā)布到tomcat的服務(wù)器上。l4、啟動tomcat服務(wù)器l5、打開IE的地址欄輸入:http:/localhost:9999/helloworld/services/hello
5、_world?wsdl或:http:/localhost:9999/helloworld/servicesl6、在命令行執(zhí)行:ant client-servlet Dbase.url=http:/localhost:9999或在MyEclipse的WebServiceExplorer中訪問這個WebServicel7、停止tomcat服務(wù)器。l8、卸載應(yīng)用:ant undeploy Dtomcat=truel9、清空項目:ant clean高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 在Eclipse中開發(fā)CXF的JavaSE應(yīng)用:l導(dǎo)入CXF中的 所有jar文件???/p>
6、以通過WACH_JARS來觀察各jar文件的用途。l建立好之后的項目如 右圖所示:高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 CXF發(fā)布服務(wù)的類:l用兩個不同的類發(fā)布應(yīng)用:lServerFactoryBean - FacotryBeanlJaxWsServerFactoryBean(建議使用此類)高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 服務(wù)與客戶端類調(diào)用原則:ServerFactoryBeanJaxWsServerFactoryBeanClientProxyFactoryBean JaxWsProxyFactoryBean服務(wù)發(fā)布類客
7、戶端調(diào)用類高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 使用ServerFactoryBean發(fā)布服務(wù):l使用ServerFactoryBean發(fā)布服務(wù)。l使用CXF發(fā)布一個服務(wù),與JDK6發(fā)布一個服務(wù)完全不同* 即使是不使用WebService注解,一樣可以發(fā)布成功* 即使此類沒有對外公布的方法一樣可以發(fā)布成功使用CXF發(fā)布完此服務(wù)后,使用wsimport生成客戶端一樣可以調(diào)用成功。高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 使用ClientProxyFactoryBean客戶端調(diào)用:l使用ServerFactoryBean發(fā)布服務(wù)以后,
8、在沒有接口的情況下,可以使用wsimport生成的客戶端代碼調(diào)用成功。l但如果要使用ClientProxyFactoryBean客戶端去調(diào)用服務(wù)器,則必須要先在服務(wù)器端創(chuàng)建一個接口。(一直以來,Spring都要求面向接口編程,而cxf與Spring能很好的整合,也就在此。),所以,必須要重寫服務(wù)器端的代碼。這將導(dǎo)致剛才使用wsimport生成的調(diào)用代碼失效。l同時, ClientProxyFactoryBean由于要用到CXF環(huán)境,所以要導(dǎo)入CXF的所有包。l同時,如果是在本項目中調(diào)用,則可以直接使用本項目的接口。l如果在其他項目中調(diào)用,仍然需wsimport生成的類,但只需要一個接口。在同一
9、個項目中調(diào)用:在不同項目中調(diào)用:高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 使用JaxWsServerFactoryBean發(fā)布服務(wù): (建議使用此類)lJaxWsServerFactoryBean是ServerFactoryBean的子類,也是功能擴(kuò)展類。l但在CXF的API文檔中沒有提供此類API,請通過查看源代碼的方式獲取此類的幫助。l此類,必須要在被發(fā)布為服務(wù)的類上添加WebService注解,如果不加注解,雖然不出錯,但也不會對外暴露任何方法。 使用此類生成的wsdl文件更加規(guī)范。l以下是從它的源代碼中找到的對此類的說明。高級軟件人才實作培訓(xùn)專家高級軟件人
10、才實作培訓(xùn)專家! !北京傳智播客教育 使用CXF的類發(fā)布一個服務(wù):在服務(wù)啟動成功后,訪問的方式為:http:/localhost:4444/one?wsdl創(chuàng)建成功以后,使用Wsimport生成的客戶端代碼,同樣可以調(diào)用成功(此類問題以后不再贅述)。wsdl2java高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 使用JaxWsProxyFactoryBean客戶端調(diào)用l此調(diào)用過程與ClientProxyFactoryBean的要求一樣,也必須要擁有一個接口。l此時,仍然可以使用wsimport生成接口,在其他項目的調(diào)用。在另一個項目中調(diào)用:高級軟件人才實作培訓(xùn)專家高級
11、軟件人才實作培訓(xùn)專家! !北京傳智播客教育 規(guī)范的做法應(yīng)該是先書寫一個接口,如下:如果不是使用spring的配置文件發(fā)布,可以沒有接口文件,但在任何情況下建議擁有接口文件。如果使用spring的配置文件發(fā)布,則必須要擁有接口類。高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 wsdl2java生成客戶代碼:l在cxf中,也提供了一個用于生成客戶端調(diào)用代碼的工具。它的功能就如同wsimport一樣。l先讓我們了解一下cxf的wsdl2java工具,可以生成一堆客戶端調(diào)用的代碼。l此工具位于cxf_home/bin目錄下。參數(shù)與wsimport有所不同。l它包含以下參數(shù):d
12、參數(shù),指定代碼生成的目錄。p參數(shù),指定生成的新的包結(jié)構(gòu)。l需要說明的是,由于wsdl2java是根據(jù)jdk1.7生成的本地代碼,所以,需要對生成的代碼做一點點修改。l在命令行執(zhí)行:wsdl2java d . :6666/helloworld?wsdl高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 調(diào)用端代碼:高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 給服務(wù)添加消息攔截器:這個非常有用:lLoggingInInterceptor 信息輸入時的攔截器 請求lLoggingOutInterceptor 信息輸出時的攔
13、截器-響應(yīng)server.getInInterceptors().add(new LoggingInInterceptor();server.getOutInterceptors().add(new LoggingOutInterceptor();給服務(wù)器添加攔截器,類似于使用TCP/IP Monitor來捕獲SOAP消息的過程。高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 使用JavaScript也可以訪問WebServie:ljQuery訪問WebService.1、在本域本域準(zhǔn)備jquery.js (由于jquery對跨域的請求做了限制,所以jquery僅限于在本
14、域中使用。但為了快速解析XML文件,仍然可以使用jquery當(dāng)成解析xml文件的工具。)。2、通過js發(fā)起ajax請求。高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 總結(jié):l如何通過ant發(fā)布第一個cxf應(yīng)用。l手工建立一個java項目發(fā)布cxf的ws.lJava項目和js訪問webServicel加入消息攔截器l將服務(wù)端改為SOAP1.2實現(xiàn)lSOAP1.1與1.2高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 WebServiceWebService-CXF-Spring-CXF-Spring基于基于webweb的的cxfcxf趙慶軒趙慶軒
15、高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 開發(fā)cxf的web項目:l由于cxf的web項目已經(jīng)集成了Spring所以,cxf的服務(wù)類都是在spring的配置文件中完成的。以下是步驟:l第一步:建立一個web項目。l第二步:準(zhǔn)備所有jar包。將cxf_homelib項目下的所有jar包全部copy到新項目的lib目錄下,里面已經(jīng)包含了spring3.0的jar包。l第三步:在web.xml中配置cxf的核心servlet,CXFServlet。l第四步:創(chuàng)建(最好是Copy)cxf-servlet.xml文件。這是一個spring的配置文件。高級軟件人才實作培訓(xùn)專家
16、高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 web.xml的配置如下:1、配置cxf的核心Servlet2、默認(rèn)即讀取此配置文件,配置或是不配置都可以。3、配置所以ws訪問的路徑高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 Cxf-servlet.xml文件說明:lCxf-servlet.xml文件,就是一個spring的配置文件。一個空的配置文件如下。上面導(dǎo)入的三個配置文件都在cxf.jar的META文件夾中高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 在地址欄訪問: 配置好空項目后,可以先測試是否可以啟動成功:lhttp:/local
17、host:9999/cxf_spring/ws如果有WebService的存在,則會顯示出來,如果沒有,則會顯示上而的信息。高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 配置發(fā)布第一個ws : (jaxb)高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 發(fā)布帶有接口的配置: (jax-ws)必須要在聲明為serviceClass的接口上聲明WebSerive注解因為,要使用了接口,在接口上添加的注解才會有效。這是作用在接口的上的注解高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 配置說明:lCXFServlet類,通過讀
18、取config-location的配置項讀取cxf-servlet.xml配置文件。并在內(nèi)部讀取自己的配置文件cxf.xml文件。l在CXFServlet讀取配置文件后,將文件信息全部讀取到ApplicationContext的Spring類中。l以下是它的源代碼:高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 通過配置給服務(wù)添加消息攔截器:lLoggingInInterceptorlLogginOutInterceptor 高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 在地址欄訪問:lhttp:/localhost:9999/cxf2.4_s
19、pring_web/ws高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 Java項目代碼調(diào)用服務(wù):l使用純Java項目調(diào)用1、根據(jù)客戶端生成的代碼來調(diào)用。(優(yōu)選這種方式)請先生成然后在任意的Java項目中調(diào)用 。2、客戶端只擁有一個接口,使用JaxWsProxyFactoryBean來調(diào)用。因為以下使用了JaxWsProxyFactoryBean,所以,仍然需要CXF的環(huán)境,而使用此環(huán)境就會造成Jar文件的大量冗余,所以大家要謹(jǐn)慎選擇。高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 在Spring項目中,通過配置文件調(diào)用:l以下是使用Spring
20、的配置文件調(diào)用:新建立一個Java項目,并加載cxf的所有包。只需要生成的接口文件。在classpath下新建立一個ClientBeans.xml文件.優(yōu)點與缺點:此種情況,適合于一個Javaweb項目已經(jīng)集成了Spring。并希望通過CXF配置的方式調(diào)用Web服務(wù)。此種情況,仍然需要導(dǎo)入CXF的大量jar包。這種情況也存在一定人優(yōu)點,如可以將外部的Web服務(wù)通過配置文件注入(DI)到Action類中。高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 建立好以后Java項目如下圖高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 ClientBeans
21、.xml文件的內(nèi)容:以下是調(diào)用代碼:高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 關(guān)于web項目配置的說明1:l如果在項目中僅發(fā)布webservice,則可以只配置以下內(nèi)容。l同時默認(rèn)即是讀取WEB-INF/cxf-servlet.xml文件,所以是否指定都可以。高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 關(guān)于web項目配置的說明2:l但一般情況下,一個web項目,在使用了Spring之后,往往會通過ApplicationContext獲取一些服務(wù),此時則必須注冊Spring的監(jiān)聽器。即以下代碼:見備注處,是一個完整的web.xml的配置。
22、高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 關(guān)于web項目配置的說明3:l在上頁中出現(xiàn)的重復(fù)引入問題,可以修改cxf-servlet.xml文件。l修改后,CXFServlet類將不能自動加載cxf-servlet.xml文件,此時將導(dǎo)致名為cxf的bean加載不成功。l為解決此問題必須在重新命名的配置文件中加入以下代碼,以啟動CXF:即:如果你是用contextConfigLocation加載的配置文件,則必須要加入以下代碼。高級軟件人才實作培訓(xùn)專家高級軟件人才實作培訓(xùn)專家! !北京傳智播客教育 關(guān)于web項目配置的說明4:l在增加了Spring的監(jiān)聽器之后,即可以使用以下代碼在Servlet中獲取Spring的配置 :高級軟件人才實作培訓(xùn)專家高
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年林地租賃與管理協(xié)議3篇
- 2024土地測繪保密協(xié)議執(zhí)行細(xì)則3篇
- 2024年浪漫交友服務(wù)協(xié)議
- 智能水杯課程設(shè)計順序
- 小班特色禮儀課程設(shè)計
- 2024年某電力工程安全施工責(zé)任合同版B版
- 春游小班主題課程設(shè)計
- 2024年電商品牌授權(quán)經(jīng)營合同
- 歷史文化保護(hù)區(qū)環(huán)境整治合同
- 旅游交通工具租賃合同
- Unit 1 Making friends Part B(說課稿)-2024-2025學(xué)年人教PEP版(2024)英語三年級上冊
- 《涉江采芙蓉》 課件高中語文統(tǒng)編版必修上冊
- 2024年事業(yè)單位考試職業(yè)能力傾向測驗試題與參考答案
- 保定學(xué)院《自然語言處理》2022-2023學(xué)年第一學(xué)期期末試卷
- 北京市西城區(qū)2023-2024學(xué)年六年級上學(xué)期數(shù)學(xué)期末試卷(含答案)
- 2024年考研英語(二)真題及參考答案
- 2024年水稻種項目可行性研究報告
- 供應(yīng)商質(zhì)量管理培訓(xùn)課程
- 期末 (試題) -2024-2025學(xué)年人教PEP版英語六年級上冊
- 2024年貴陽南明投資集團(tuán)有限責(zé)任公司招聘筆試參考題庫附帶答案詳解
- 會計師事務(wù)所信息安全管理制度規(guī)定
評論
0/150
提交評論