Webservice調(diào)用框架_第1頁
Webservice調(diào)用框架_第2頁
Webservice調(diào)用框架_第3頁
Webservice調(diào)用框架_第4頁
Webservice調(diào)用框架_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Webservice調(diào)用框架1. Webservice部署1.1 Apache Axis2Apache Axis2是一套嶄新的WebService引擎,該版本是對Axis1.x重新設(shè)計的產(chǎn)物。Axis2是廣泛使用Apache Axis棧的成功典范,不僅支持SOAP1.1和 SOAP1.2,還集成了非常流行的REST WebService,同時還支持Spring、JSON等技術(shù)。1.1.1 Apache Axis2下載與安裝目前最新的版本是1.5.3,可從/axis2/java/core/下載最新版本。筆者使用的版本是1.5.2,下載axis2-1.5.

2、2-bin.zip和axis2-1.5.2-war.zip這兩個包。其中axis2-1.5.2-bin.zip文件中包含了Axis2中所有的jar文件,axis2-1.5.2-war.zip文件用于將WebService發(fā)布到Web容器中。將axis2-1.5.2-war.zip文件解壓到相應(yīng)的目錄,將目錄中的axis2.war文件放到<Tomcat安裝目錄>webapps目錄中(本文使用的Tomcat的版本是6.x),并啟動Tomcat。在瀏覽器地址欄中輸入如下的URL:http:/localhost:8080/axis2/,如瀏覽器顯示如圖1所示頁面,則說明Axis2安裝成功。

3、圖1 Axis2主頁面1.1.2 編寫和發(fā)布WebService使用Apache Axis2發(fā)布WebService有兩種方式,一種是POJO方式,一種是使用services.xml發(fā)布WebService。 POJO方式在Axis2中不需要進行任何的配置,就可以直接將一個簡單的POJO發(fā)布成WebService。其中POJO中所有的public方法將被發(fā)布成WebService方法。1. 首先編寫一個簡單的POJO,代碼如下:在SimpleService類中有兩個方法,由于這兩個方法都是public方法,因此,它們都將作為WebService方法被發(fā)布。2. 編譯SimpleS

4、ervice類后,將SimpleService.class文件放到<Tomcat安裝目錄>webappsaxis2WEB-INFpojo目錄中(如果沒有pojo目錄,則建立該目錄)?,F(xiàn)在我們已經(jīng)成功將 SimpleService類發(fā)布成了WebService。在瀏覽器地址欄中輸入如下的URL:http:/localhost:8080/axis2/services/listServices。這時當前頁面將顯示所有在Axis2中發(fā)布的WebService,如圖2所示。圖2 Axis2發(fā)布的WebService在使用POJO方式發(fā)布WebService時應(yīng)注意如下幾點:1. POJO類不

5、能使用package關(guān)鍵字聲明包。2. Axis2在默認情況下可以熱發(fā)布WebService,也就是說,將WebService的.class文件復制到pojo目錄中時,Tomcat不需要重新啟動就可以自動發(fā)布WebService。如果想取消Axis2的熱發(fā)布功能,可以打開<Tomcat安裝目錄>webappsaxis2WEB-INFconfaxis2.xml,找到如下的配置代碼:<parametername="hotdeployment">true</parameter>,將true改為false即可。3. 要注意的是,Axis2在默認情

6、況下雖然是熱發(fā)布,但并不是熱更新,也就是說,一旦成功發(fā)布了 WebService,再想更新該WebService,就必須重啟Tomcat。這對于開發(fā)人員調(diào)試WebService非常不方便,因此,在開發(fā) WebService時,可以將Axis2設(shè)為熱更新。在axis2.xml文件中找到<parameter name="hotupdate">false</parameter>,將false改為true即可。4. 發(fā)布WebService的pojo目錄只是默認的,如果想在其他目錄發(fā)布WebService,可以打開axis2.xml文件,并在<axis

7、config>元素中添加如下的子元素:<deployerextension=".class"directory="my"class="org.apache.axis2.deployment.POJODeployer"/>。上面的配置允許在<Tomcat安裝目錄>webappsaxis2WEB-INFmy目錄中發(fā)布WebService。例如,將本例中的SimpleService.class復制到my目錄中也可以成功發(fā)布(但要刪除pojo目錄中的SimpleService.class,否則產(chǎn)生重名現(xiàn)象)。1.

8、1.2.2 使用services.xml發(fā)布WebService使用該種方式,允許在Axis2中發(fā)布帶包的POJO類。1. 首先編寫如下JAVA代碼:2. 編譯SimpleService.java生成SimpleService.class文件。3. 創(chuàng)建services.xml文件,指定服務(wù)名,設(shè)置處理webservice方法的處理器,具體代碼如下所示:其中 <service>元素用于發(fā)布 Web Service,一個 <service>元素只能發(fā)布一個 WebService類,name屬性表示 WebService名。<description>元素表示當前

9、 Web Service的描述,<parameter>元素用于設(shè)置 WebService的參數(shù),在這里用于設(shè)置 WebService對應(yīng)的類名。在這里最值得注意的是 <messageReceivers>元素,該元素用于設(shè)置處理 WebService方法的處理器。例如,getGreeting方法有一個返回值,因此需要使用可處理輸入輸出的 RPCMessageReceiver類。當方法沒有返回值時,需要使用只能處理輸入的 RPCInOnlyMessageReceiver類。4. 創(chuàng)建任意文件目錄,構(gòu)建目錄結(jié)構(gòu)如下:serviceSimpleService.classMETA

10、-INFservices.xml。5. 打開CMD控制臺,進入上述文件目錄,輸入命令:jar cvf SimpleService.aar .,生成aar文件。將SimpleService.aar文件復制到 <Tomcat安裝目錄>webappsaxis2WEB-INFservices目錄中,啟動 Tomcat后,就可以調(diào)用這個名稱為SimpleService的WebService了。1.2 Apache CXFApache CXF = Celtix + XFire,Apache CXF的前身叫 Apache CeltiXfire,現(xiàn)在已經(jīng)正式更名為 Apache CXF 了,以下簡

11、稱為 CXF。CXF 繼承了Celtix 和XFire 兩大開源項目的精華,提供了對 JAX-WS 全面的支持,并且提供了多種 Binding、DataBinding、Transport以及各種Format的支持,并且可以根據(jù)實際項目的需要,采用代碼優(yōu)先(Code First)或者WSDL 優(yōu)先(WSDL First)來輕松地實現(xiàn) Web Services 的發(fā)布和使用。Apache CXF已經(jīng)是一個正式的Apache頂級項目。1.2.1 Apache CXF下載目前Apache CXF最近版本為2.3.0,可從/download.html下載apach

12、e-cxf-2.3.0.zip和apache-cxf-2.3.0-src.zip。1.2.2 使用CXF發(fā)布WebService1. 使用MyEclipse新建一個Web工程CxfService,將apache-cxf-2.3.0.zip中l(wèi)ib目錄下的包導入到工程中。2. 創(chuàng)建一個接口類HelloWorld,代碼如下:3. 創(chuàng)建接口的實現(xiàn)類HelloWorldImpl,代碼如下:其中,WebService用于申明為webservice的注解,endpointInterface用于指定要暴露的接口類,serviceName用于指定服務(wù)名。4. 在WEB-INF目錄下新建beans.xml,如下

13、:其中,implementor用于指定接口類的實現(xiàn)類,address要和注釋里面的服務(wù)名對應(yīng)。5. 修改web.xml文件,如下:6. 啟動Tomcat,在瀏覽器中輸入http:/localhost:8080/CxfService/services/,如果如圖3所示頁面,則說明服務(wù)器端配置成功。圖3 CXF Services或者輸入http:/localhost:8080/CxfService/services/HelloWorld?wsdl,出現(xiàn)WSDL文檔,則說明服務(wù)器端配置成功。1.3 Oracle WebLogic使用MyEclipse可以輕松地創(chuàng)建WebService,并部署到Web

14、Logic服務(wù)器中。1.3.1 基于XFile架構(gòu)部署WebService1. 創(chuàng)建一個Web Service Project,選擇XFile作為基礎(chǔ)框架,并選擇J2EE 1.4。2. 制作一個WebService服務(wù)端,右擊工程->New->Other->MyEclipse->Web Services->Web Service。選擇從一個Class 創(chuàng)建Web Service,并創(chuàng)建一個新的Java Bean。完成后,在Java文件中寫入想要實現(xiàn)的代碼。3. 將工程部署到WebLogic中,運行WebLogic。4. 訪問http:/<servername

15、>:<port>/<project name >/services/查看是否部署成功。1.3.2 基于JAX-WS架構(gòu)部署WebService1. 創(chuàng)建一個Web Project。2. 在工程中創(chuàng)建想要實現(xiàn)的類,添加代碼。3. 制作一個WebService服務(wù)端,右擊工程->New->Other->MyEclipse->Web Services->Web Service。選擇JAX-WS架構(gòu),選擇從一個Class 創(chuàng)建Web Service。選擇上部中實現(xiàn)的類,并指定Service name。4. 將工程部署到WebLogic中,運行

16、WebLogic。5. 訪問http:/ <servername>:<port>/<project name>/<Service name>查看是否部署成功。2. WebService調(diào)用1. JAVA平臺:使用JDK提供的wsimport命令,針對WSDL文件生成客戶端代碼。該客戶端其實是一系列封裝好的類,實現(xiàn)對Webservice的調(diào)用。開發(fā)人員沒必要去了解客戶端是如何工作的,只需要調(diào)用客戶端相應(yīng)的接口即可:wsimport s <code directory> <WSDL-URI>。2. .Net平臺:在工程中添加web引用,輸入WSDL的URI,該web引用實現(xiàn)了對Webservice的調(diào)用。開發(fā)人員沒必要去了解web引用是如何工作的,只需要調(diào)用web引用相應(yīng)的接口即可。3. 根據(jù)上述兩種情況,根據(jù)相

溫馨提示

  • 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

提交評論