cxf開發(fā)webService.docx_第1頁
cxf開發(fā)webService.docx_第2頁
cxf開發(fā)webService.docx_第3頁
cxf開發(fā)webService.docx_第4頁
cxf開發(fā)webService.docx_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

使用Apache CXF開發(fā)WebServices服務(wù)端Apache CXF = Celtix + XFire。CXF 繼承了 Celtix 和 XFire 兩大開源項目的精華,提供了對 JAX-WS 全面的支持,并且提供了多種 Binding 、DataBinding、Transport 以及各種 Format 的支持,并且可以根據(jù)實(shí)際項目的需要,采用代碼優(yōu)先(Code First)或者 WSDL 優(yōu)先(WSDL First)來輕松地實(shí)現(xiàn) Web Services 的發(fā)布和使用??傊?,就是cxf就是好啦。那么接下來我們使用cxf來開發(fā)一個webServices的服務(wù)端。體驗CXF的好處。環(huán)境:MyEclipse6.01+jdk51)首先,建一個web工程.2)寫好一個接口和服務(wù)類/服務(wù)接口IHelloService.javapackage com.pengzj.service;import java.util.List;import javax.jws.WebMethod;import javax.jws.WebService;/* author atixujie#gz-accp*/WebServicepublic interface IHelloService WebMethod public String sayHi(String uname);/webServices的實(shí)現(xiàn)類IHelloServiceImpl .javaimport com.pengzj.service.IHelloService;WebServicepublic class IHelloServiceImpl implements IHelloService Override WebMethod public String sayHi(String uname) return Hello +uname; 大家可以注意到,這里用到了webServices的注解。WebService和WebMethod.3)導(dǎo)入CXF的jar包。到apache的網(wǎng)站上下載CXF的包。最新的版本是2.2.9 。當(dāng)然如果你下載這個包就會比較麻煩。因為它需要最新的JDk(1.6.01都不行。要什么1.6.u11)的支持。所以建議你還是下載2.0.4地址如下:/dist/incubator/cxf/2.0.4-incubator/apache-cxf-2.0.4-incubator.zip解壓之后將lib文件夾下的jar包都復(fù)制到項目中。4)配置CXF。然后將web.xml的配置文件改成如下:cxf cxf Apache CXF Endpoint cxf org.apache.cxf.transport.servlet.CXFServlet 1 cxf /services/* 60 org.springframework.web.context.ContextLoaderListener 5)配置Spring的配置文件。因為CXF集成了Spring。所以以上的配置要默認(rèn)到WEB-INF/下找spring的配置文件applicationContext.xml。所以我們要在WEB-INF下建立一個Spring的配置文件applicationContext.xml如下: 準(zhǔn)備工作結(jié)束了。部署,運(yùn)行。在地址上輸入:http:/localhost:8080/cxfws_0619/services/就應(yīng)該可以看到一個超鏈接,點(diǎn)擊可以看到如下的wsdl-xml文件+ok.使用CXF開發(fā)服務(wù)端大功告成??偨Y(jié)步驟:1)建立web工程。導(dǎo)入cxf的jar包。2)配置web.xml文件3)配置spring的配置文件。同時配置好服務(wù)類的bean.4)部署運(yùn)行。在下一篇中,我們將介紹利用wsdl2java工具生成代碼,完成客戶端的調(diào)用。開發(fā)webServices的客戶端-通過wsdl2java接下來客戶端的調(diào)用從理論上來說可以使用任意的方式來調(diào)用。因為webServices的理念就是服務(wù)端和客戶端可以是異構(gòu)平臺。在之前的博客中,使用XFIRE作為客戶端?,F(xiàn)在我們使用根據(jù)wsdl文件自動生成樁代碼的形式來開發(fā)客戶端。在cxf的包中解壓后有一個bin目錄。其中有一個wsdl2java.bat文件。這個文件可以幫助我們根據(jù)wsdl文件來生成客戶端的stub。也就是樁代碼。主要是生成和服務(wù)端一致的接口文件。在dos下使用這個命令(實(shí)際上myclipse有這個插件)wsdl2java -d d:src -clienthttp:/localhost:8080/cxfService_0617/services/Hellows?wsdl就會在d盤的src文件夾下生成一些包和java文件。src文件夾你要預(yù)先建立好。其中文件名最長的那個文件就是主應(yīng)用程序。args0表示wsdl文件的位置,你需要手動修改一下。public final class IHelloService_IHelloServiceImplPort_Client private static final QName SERVICE_NAME = new QName(/, IHelloServiceImplService); private IHelloService_IHelloServiceImplPort_Client() public static void main(String args) throws Exception String url=http:/localhost:8080/cxfService_0617/services/Hellows?wsdl; URL wsdlURL = null; File wsdlFile = new File(url); try if (wsdlFile.exists() wsdlURL = wsdlFile.toURL(); else wsdlURL = new URL(url); catch (MalformedURLException e) e.printStackTrace(); IHelloServiceImplService ss = new IHelloServiceImplService(wsdlURL, SERVICE_NAME); IHelloService port = ss.getIHelloServiceImplPort(); System.out.println(Invoking sayHi.); java.lang.String _sayHi_arg0 = jack; java.lang.String _sayHi_return = port.sayHi(_sayHi_arg0); System.out.println(sayHi.result= + _sayHi_return); System.exit(0); 運(yùn)行以上的程序結(jié)果為:Invoking sayHi.sayHi.result=Hello jack。-恭喜你,成功了。后續(xù):因為我們在服務(wù)端的webServices方法比較簡單,傳遞的是String,返回值也是string.如果傳入或返回的值帶有自定義的數(shù)據(jù)類型。那么生成

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論