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

下載本文檔

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

文檔簡(jiǎn)介

使用Apache CXF開發(fā)WebServices服務(wù)端Apache CXF = Celtix + XFire。CXF 繼承了 Celtix 和 XFire 兩大開源項(xiàng)目的精華,提供了對(duì) JAX-WS 全面的支持,并且提供了多種 Binding 、DataBinding、Transport 以及各種 Format 的支持,并且可以根據(jù)實(shí)際項(xiàng)目的需要,采用代碼優(yōu)先(Code First)或者 WSDL 優(yōu)先(WSDL First)來(lái)輕松地實(shí)現(xiàn) Web Services 的發(fā)布和使用??傊?,就是cxf就是好啦。那么接下來(lái)我們使用cxf來(lái)開發(fā)一個(gè)webServices的服務(wù)端。體驗(yàn)CXF的好處。環(huán)境:MyEclipse6.01+jdk51)首先,建一個(gè)web工程.2)寫好一個(gè)接口和服務(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)然如果你下載這個(gè)包就會(huì)比較麻煩。因?yàn)樗枰钚碌腏Dk(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ù)制到項(xiàng)目中。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的配置文件。因?yàn)镃XF集成了Spring。所以以上的配置要默認(rèn)到WEB-INF/下找spring的配置文件applicationContext.xml。所以我們要在WEB-INF下建立一個(gè)Spring的配置文件applicationContext.xml如下: 準(zhǔn)備工作結(jié)束了。部署,運(yùn)行。在地址上輸入:http:/localhost:8080/cxfws_0619/services/就應(yīng)該可以看到一個(gè)超鏈接,點(diǎn)擊可以看到如下的wsdl-xml文件+ok.使用CXF開發(fā)服務(wù)端大功告成??偨Y(jié)步驟:1)建立web工程。導(dǎo)入cxf的jar包。2)配置web.xml文件3)配置spring的配置文件。同時(shí)配置好服務(wù)類的bean.4)部署運(yùn)行。在下一篇中,我們將介紹利用wsdl2java工具生成代碼,完成客戶端的調(diào)用。開發(fā)webServices的客戶端-通過(guò)wsdl2java接下來(lái)客戶端的調(diào)用從理論上來(lái)說(shuō)可以使用任意的方式來(lái)調(diào)用。因?yàn)閣ebServices的理念就是服務(wù)端和客戶端可以是異構(gòu)平臺(tái)。在之前的博客中,使用XFIRE作為客戶端?,F(xiàn)在我們使用根據(jù)wsdl文件自動(dòng)生成樁代碼的形式來(lái)開發(fā)客戶端。在cxf的包中解壓后有一個(gè)bin目錄。其中有一個(gè)wsdl2java.bat文件。這個(gè)文件可以幫助我們根據(jù)wsdl文件來(lái)生成客戶端的stub。也就是樁代碼。主要是生成和服務(wù)端一致的接口文件。在dos下使用這個(gè)命令(實(shí)際上myclipse有這個(gè)插件)wsdl2java -d d:src -clienthttp:/localhost:8080/cxfService_0617/services/Hellows?wsdl就會(huì)在d盤的src文件夾下生成一些包和java文件。src文件夾你要預(yù)先建立好。其中文件名最長(zhǎng)的那個(gè)文件就是主應(yīng)用程序。args0表示wsdl文件的位置,你需要手動(dòng)修改一下。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ù):因?yàn)槲覀冊(cè)诜?wù)端的webServices方法比較簡(jiǎn)單,傳遞的是String,返回值也是string.如果傳入或返回的值帶有自定義的數(shù)據(jù)類型。那么生成

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論