Java程序员从笨鸟到菜鸟之(一百零九)一步一步学习webservice(三)开发第一个基于XFire的webservice
在日常開發(fā)中,常用的webservice引擎主要有Axis,axis2,Xfire以及cxf(Xfire的升級版)。現(xiàn)在只有axis2和cxf官方有更新。今天我們先以一個(gè)比較老的引擎為例。來講訴一下webservice的主要用法和簡單原理。
??????XFire是新一代的Java?Web服務(wù)引擎,XFire使得在JavaEE應(yīng)用中發(fā)布Web服務(wù)變得輕而易舉。和其他Web服務(wù)引擎相比,XFire的配置非常簡單,可以非常容易地和Spring集成,它使得Java開發(fā)人員終于可以獲得和.Net開發(fā)人員一樣的開發(fā)效率。XFire是codeHaus組織提供的一個(gè)開源框架,它構(gòu)建了POJO和SOA之間的橋梁,主要特性就是支持將POJO通過非常簡單的方式發(fā)布成Web服務(wù),這種處理方式不僅充分發(fā)揮了POJO的作用,簡化了Java應(yīng)用轉(zhuǎn)化為Web服務(wù)的步驟和過程,也直接降低了SOA的實(shí)現(xiàn)難度,為企業(yè)轉(zhuǎn)向SOA架構(gòu)提供了一種簡單可行的方式。下面我們就通過一個(gè)小例子來實(shí)現(xiàn)一個(gè)基于XFire的webservice程序。
開發(fā)環(huán)境?
Sun?Java?6+?MyEclipse?8.5
首先建立一個(gè)webservice工程:File—》new—》web?service?project
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ?輸入你所想要的項(xiàng)目名。選中FrameWork為XFire,點(diǎn)擊next
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
圖中的Servlet?class選中當(dāng)前的servlet。其他的默認(rèn)就可以了。點(diǎn)擊next。然后選中假如當(dāng)前的jar包。
下面我們看一下新創(chuàng)建的MyWebService?Web?Service工程的組織結(jié)構(gòu),Web?Service?工程和一個(gè)標(biāo)準(zhǔn)的MyEclipse?Web工程很相似.?(這是我們剛才配置時(shí),Myeclipse給我自動(dòng)假如的servlet的配置):?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
?
整個(gè)工程的結(jié)構(gòu):
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
OK,開發(fā)前的大部分準(zhǔn)備工作做完以后。下一步我們要進(jìn)行的就是webservice的服務(wù)端,也就是提供給服務(wù)的一端的開發(fā)。其實(shí)這里所說的開發(fā)基本還是要靠Myeclipse的向?qū)韼臀覀兺瓿伞?/span>
File—》new—》other:
? ? ? ? ? ? ? ? ? ? ?
在圖中的myeclipse文件夾中找出web?services中的web?service。選中。點(diǎn)擊next。
? ? ? ? ? ? ? ??
上圖中Project所指定的就是我們要為哪個(gè)web項(xiàng)目創(chuàng)建service。這里我們當(dāng)然選中的就是我們剛才所創(chuàng)建的MyWebService。然后要注意的就是這里的strategy?我們選中的是第二個(gè):從java類中創(chuàng)建web服務(wù)、下面的創(chuàng)建新的java?bean也要選中。點(diǎn)擊next
? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
這里讓我們填寫一個(gè)創(chuàng)建web服務(wù)的名字。然后選擇所生成的類的包名。其他的默認(rèn)就好。點(diǎn)擊finish。
該向?qū)Мa(chǎn)生了IMyWebServiceService?Java接口和MyWebServiceServiceImpl?Java類.并且在services.xml配置文件中創(chuàng)建了一個(gè)實(shí)體(如圖所示),注意到example(String?name)方法在接口類中產(chǎn)生,當(dāng)Web?Service部署后作為一個(gè)測試操作.??
從上面代碼中我們可以看出我們這個(gè)web服務(wù)的功能就是,當(dāng)客戶端給我傳過來一個(gè)“name”。我們返回一個(gè)“hell?+?name”;
下一步要做的就是我們把我們這個(gè)web服務(wù)程序發(fā)布到服務(wù)器上。只有發(fā)布到程序上。別人才可以通過接口調(diào)用我們所寫的服務(wù)。發(fā)布服務(wù)器的過程我就不寫了。然后啟動(dòng)服務(wù)器。
OK,web服務(wù)寫好了。Myeclipse為我們提供了一個(gè)很好的web服務(wù)的測試的功能。下面我們就用這個(gè)功能來測試一下我們的web服務(wù)是否寫配置正確。
在MyEclipse?perspective中選擇toolbar?button來執(zhí)行Web?Service?Explorer?
1.點(diǎn)擊: ? ? ? ? ? ?? ??
2.?選擇WSDL模式:
3.?在活動(dòng)面板中鍵入MyWebServiceService?WSDL文檔的URL—http://localhost:8080/MyWebService/services/MyWebServiceService?WSDL,Web?Service?Explorer將下載自動(dòng)產(chǎn)生的WSDL文檔,該WSDL文檔由XFire?framework,并產(chǎn)生一系列的操作能夠調(diào)用service.?
4.?在活動(dòng)面板中選擇example操作并在in0域中鍵入MyWebService?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
5.?選擇Go按鈕來調(diào)用在MyWebServiceService上的example操作,,結(jié)果出現(xiàn)在Status面板上??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
Ok,從圖中我們可以發(fā)現(xiàn)。我們所做的的服務(wù)是成功的。既然是成功的。我們就可以發(fā)布到網(wǎng)絡(luò)上。讓需要的人可以調(diào)用我所提供的這個(gè)功能了。那么如何調(diào)用我們這功能呢?這就涉及到我們webservice?客戶端的開發(fā)了。下面我們來看一下webservice客戶端的開發(fā)。
為了方便理解。我們還是在我們本web?工程中創(chuàng)建客戶端。首先我們要給我的工程添加webservice客戶端的支持。也就是所謂的添加所需jar包。
右擊工程—》點(diǎn)擊BuildPath—》add?libary—》選中XFire1.2HTTP-client?libary
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Finish
創(chuàng)建測試類:
? ?
? ? ? 該段代碼定義了創(chuàng)建一個(gè)XFire?web?service?proxy的過程,該代理支持POJO?IMyWebServiceService接口?。運(yùn)行上面一段代碼。我們就成功的調(diào)用了我們所寫的web服務(wù)功能
------------------------------------------------------------------------------------------------------------
《Java程序員由笨鳥到菜鳥》電子版書正式發(fā)布,歡迎大家下載
http://blog.csdn.net/csh624366188/article/details/7999247
from:?http://blog.csdn.net/csh624366188/article/details/8229409
總結(jié)
以上是生活随笔為你收集整理的Java程序员从笨鸟到菜鸟之(一百零九)一步一步学习webservice(三)开发第一个基于XFire的webservice的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java程序员从笨鸟到菜鸟之(一百零八)
- 下一篇: java美元兑换,(Java实现) 美元