Java使用Apache CXF开发Web Service
轉(zhuǎn)自:http://blog.csdn.net/hu_shengyang/article/details/38384597
以前工作中也用CXF,但都是用別人現(xiàn)成搭好的環(huán)境,這次自己重頭搭建一遍環(huán)境。過(guò)程中也有遇到的問(wèn)題,也做了簡(jiǎn)單的整理。
對(duì)于CXF是干什么用的,我不想多說(shuō),大家都知道這是我們?cè)趈ava編程中webService技術(shù)的一種實(shí)現(xiàn)工具。我們說(shuō)說(shuō)為什么用CXF來(lái)實(shí)現(xiàn)webService:
1.??????Java的webService實(shí)現(xiàn)本身就是一個(gè)很耗性能的實(shí)現(xiàn)方案(xml與java對(duì)象之間在服務(wù)端以及客戶端的互轉(zhuǎn)比較消耗性能)
2.??????目前java主流的webService應(yīng)用以CXF、AXIS2為主;
3.??????通過(guò)網(wǎng)絡(luò)渠道的了解,目前CXF的效率要比AXIS2高出至少50%;
4.??????另外有一個(gè)webService的工具metro的效率比CXF高出10%;
5.??????CXF的實(shí)現(xiàn)資料網(wǎng)上可以隨便找出一大堆,metro的資料相對(duì)少一些;
6.??????CXF在java應(yīng)用實(shí)現(xiàn)中已經(jīng)很成熟,企業(yè)更傾向于用這樣一個(gè)成熟的解決方案;
基于以上原因,我選擇CXF來(lái)實(shí)現(xiàn)webService。
參考資料:
Java Web?服務(wù): CXF 性能比較----CXF 與最新版本的 Axis2 和 Metro 之間的性能對(duì)比
http://www.ibm.com/developerworks/cn/java/j-jws14/
?
一 ? 以annotation注解方式實(shí)現(xiàn)發(fā)布webService應(yīng)用
1、? 基礎(chǔ)環(huán)境
新建java web工程cxf之后,下載cxf工具包。解壓CXF之后,把cxf工具包lib下的jar包全部放到工程的lib下。
此處用到的cxf工具包版本為:apache-cxf-2.7.12
下載地址:
http://www.apache.org/dyn/closer.cgi?path=/cxf/2.7.12/apache-cxf-2.7.12.zip
?
2、? 編寫服務(wù)接口
見文件HelloWorld.java
[java]?view plain?copy ?
?
3、? 服務(wù)接口實(shí)現(xiàn)
見文件HelloWorldImpl.java
[java]?view plain?copy ?
4、? 發(fā)布服務(wù)app
見文件webServiceApp.java
[java]?view plain?copy ?
右鍵 run as 選擇java application發(fā)布服務(wù);然后在瀏覽器輸入地址:http://localhost:8080/helloWorld?wsdl
如圖:20140805132120.jpg
說(shuō)明webService服務(wù)發(fā)布成功。
?
5、? 客戶端訪問(wèn)服務(wù)
見文件HelloWorldClient.java
[java]?view plain?copy ?
右鍵 run as 選擇java application,控制臺(tái)打印如圖:
20140805132610.jpg
Ok,客戶端訪問(wèn)也成功了。
6、? 附:
User.java
[java]?view plain?copy ?
?
二與spring集成實(shí)現(xiàn)webService
1、? 配置web.xml
見文件web.xml
[html]?view plain?copy ?
?
2、? 配置applicationContext.xml
見文件applicationContext.xml
[html]?view plain?copy ?
?
3、? 修改客戶端代碼
見文件HelloWorldClient.java
[java]?view plain?copy ?
?
4、? 啟動(dòng)tamcat發(fā)布webService
然后在瀏覽器輸入地址:http://localhost:8080/cxf/webservice/helloWorld?wsdl
如圖:20140805133642.jpg
說(shuō)明webService服務(wù)發(fā)布成功。
?
5、? 運(yùn)行客戶端代碼訪問(wèn)webService
右鍵 run as 選擇java application,控制臺(tái)打印如圖:
20140805134838.jpg
Ok,客戶端訪問(wèn)也成功了。
總結(jié)
以上是生活随笔為你收集整理的Java使用Apache CXF开发Web Service的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: McAfee(麦咖啡)杀毒规则设置方法
- 下一篇: 大麦仁的功效与作用、禁忌和食用方法