溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

JAVA開發(fā)中使用的幾種Web Service框架有哪些

發(fā)布時間:2020-07-09 09:16:08 來源:億速云 閱讀:385 作者:Leah 欄目:編程語言

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)JAVA開發(fā)中使用的幾種Web Service框架有哪些,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

在講Web Service開發(fā)服務(wù)時,需要介紹一個目前開發(fā)Web Service的幾個框架,分別為Axis,axis2,Xfire,CXF以及JWS(也就是前面所述的JAX-WS,這是Java6發(fā)布所提供的對Web Service服務(wù)的一種實現(xiàn)。)

前面幾項都為開源項目,而其中又以axis2與cxf所最為常用,Axis與XFire已隨著技術(shù)不斷的更替慢慢落幕,而目前也只有axis2和cxf官方有更新,Axis與XFire都已不再更新。

下面就分別介紹下這幾個框架之間的區(qū)別,以便大家進行更好的選擇:

XFire是與Axis2 并列的新一代WebService平臺。之所以并稱為新一代,因為它:

1、支持一系列Web Service的新標準--JSR181、WSDL2.0 、JAXB2、WS-Security等;

2、使用Stax解釋XML,性能有了質(zhì)的提高。XFire采用Woodstox 作Stax實現(xiàn);

3、容易上手,可以方便快速地從pojo發(fā)布服務(wù);

4、Spring的結(jié)合;

5、靈活的Binding機制,包括默認的Aegis,xmlbeans,jaxb2,castor。

XFire與Axis1性能的比較

1、XFire比Axis1.3快2-6倍

2、XFire的響應(yīng)時間是Axis1.3的1/2到1/5

XFire與Axis2的比較

雖然XFire與Axis2都是新一代的WebService平臺,但是Axis2的開發(fā)者太急于推出1.0版本,所以1.0還不是一個穩(wěn)定的版本,它的開發(fā)者宣稱1.1版本即將推出,希望1.1版本會是個穩(wěn)定的版本。

在XFire捐獻給apache后有人認為Axis2將會滅亡。其實在很多人眼里,Axis2并不是pojo形式,Dan Diephouse證明了XFire比Axis更有市場

我也發(fā)現(xiàn)了有很多人開始從Axis轉(zhuǎn)向XFire,包括我也在說服身邊的人轉(zhuǎn)向利用XFire進行WebService的開發(fā),很典型的是我可以在幾分鐘之內(nèi)教會我的團隊實用XFire來發(fā)布一個他自己的Web服務(wù)。

本人傾向于XFire確實比Axis2簡單很多。

AXIS VS CXF

在SOA領(lǐng)域,我們認為Web Service是SOA體系的構(gòu)建單元(building block)。

對于服務(wù)開發(fā)人員來說,AXIS和CXF一定都不會陌生。這兩個產(chǎn)品都是Apache孵化器下面的Web Service開源開發(fā)工具。

本文發(fā)布時Axis的最新版本是1.4;CXF現(xiàn)在已經(jīng)到了3.0版本。

這兩個框架 都是從已有的開源項目發(fā)展起來的

Axis2是從Axis1.x系列發(fā)展而來。而CXF則是XFire和Celtix項目的結(jié)合產(chǎn)品。Axis2是從底層全部重新實現(xiàn),使用了新的擴展性更好模塊架構(gòu)。 CXF也重新的深化了XFire和Celtix這兩個開發(fā)工具。

比較這兩個框架的Web Service開發(fā)方法與比較它們的特性同樣重要。

從開發(fā)者的角度,兩個框架的特性相當(dāng)?shù)牟煌?/p>

Axis2的開發(fā)方式類似一個小型的應(yīng)用服務(wù)器,Axis2的開發(fā)包要以WAR的形式部署到Servlet容器中,比如Tomcat,通過這些容器可以對工作中的Web Service進行很好的監(jiān)控和管理。

Axis2的Web administrion模塊可以讓我們動態(tài)的配置Axis2.一個新的服務(wù)可以上載,激活,使之失效,修改web服務(wù)的參數(shù)。

管理UI也可以管理一個或者多個處于運行狀態(tài)的服務(wù)。這種界面化管理方式的一個弊端是所有在運行時修改的參數(shù)沒有辦法保存,因為在重啟動之后,你所做的修改就會全部失效。

Axis2允許自己作為獨立的應(yīng)用來發(fā)布Web Service,并提供了大量的功能和一個很好的模型,這個模型可以通過它本身的架構(gòu)(modular architecture)不斷添加新的功能。

有些開發(fā)人員認為這種方式對于他們的需求太過于繁瑣,從而會更喜歡CXF

CXF更注重開發(fā)人員的工效(ergonomics)和嵌入能力(embeddability)。

大多數(shù)都可以通過配置API來完成,替代了比較繁瑣的XML配置文件, Spring的集成性經(jīng)常的被提及,CXF支持Spring2.0和CXF's API和Spring的配置文件可以非常好的對應(yīng)。

CXF強調(diào)代碼優(yōu)先的設(shè)計方式(code-first design),使用了簡單的API使得從現(xiàn)有的應(yīng)用開發(fā)服務(wù)變得方便。

不過你選擇Axis2還是CXF,你都可以從開源社區(qū)得到大量的幫助。

這兩個框架都有商業(yè)公司提供服務(wù),WSO2提供AXIS2的支持,Iona提供CXF的支持。這兩公司都有很活躍的開發(fā)者社區(qū)。

下面分別介紹一個這幾種Web Service框架的基本概念

1、JWS是Java語言對WebService服務(wù)的一種實現(xiàn),用來開發(fā)和發(fā)布服務(wù)。

而從服務(wù)本身的角度來看JWS服務(wù)是沒有語言界限的。但是Java語言為Java開發(fā)者提供便捷發(fā)布和調(diào)用WebService服務(wù)的一種途徑。

2、Axis2是Apache下的一個重量級WebService框架,準確說它是一個Web Services / SOAP / WSDL 的引擎,是WebService框架的集大成者,它能不但能制作和發(fā)布WebService,而且可以生成Java和其他語言版WebService客戶端和服務(wù)端代碼。

這是它的優(yōu)勢所在。但是,這也不可避免的導(dǎo)致了Axis2的復(fù)雜性,使用過的開發(fā)者都知道,它所依賴的包數(shù)量和大小都是很驚人的,打包部署發(fā)布都比較麻煩,不能很好的與現(xiàn)有應(yīng)用整合為一體。

但是如果你要開發(fā)Java之外別的語言客戶端,Axis2提供的豐富工具將是你不二的選擇。

3、XFire是一個高性能的WebService框架,在Java6之前,它的知名度甚至超過了Apache的Axis2,XFire的優(yōu)點是開發(fā)方便,與現(xiàn)有的Web整合很好,可以融為一體,并且開發(fā)也很方便

但是對Java之外的語言,沒有提供相關(guān)的代碼工具。XFire后來被Apache收購了,原因是它太優(yōu)秀了,收購后,隨著Java6 JWS的興起,開源的WebService引擎已經(jīng)不再被看好,漸漸的都敗落了。

4、CXF是Apache旗下一個重磅的SOA簡易框架,它實現(xiàn)了ESB(企業(yè)服務(wù)總線)。

CXF來自于XFire項目,經(jīng)過改造后形成的,就像目前的Struts2來自WebWork一樣

可以看出XFire的命運會和WebWork的命運一樣,最終會淡出人們的視線。CXF不但是一個優(yōu)秀的Web Services / SOAP / WSDL 引擎,也是一個不錯的ESB總線,為SOA的實施提供了一種選擇方案,當(dāng)然他不是最好的,它僅僅實現(xiàn)了SOA架構(gòu)的一部分。

注:對于Axis2與CXF之間的關(guān)系,一個是Axis2出現(xiàn)的時間較早,而CXF的追趕速度快。

如何抉擇:

1、如果應(yīng)用程序需要多語言的支持,Axis2 應(yīng)當(dāng)是首選了;

2、如果應(yīng)用程序是遵循 Spring 哲學(xué)路線的話,Apache CXF 是一種更好的選擇,特別對嵌入式的 Web Services 來說;

3、如果應(yīng)用程序沒有新的特性需要的話,就仍是用原來項目所用的框架,比如 Axis1,XFire,Celtrix或 BEA 等等廠家自己的 Web Services 實現(xiàn),就別勞民傷財了。

最后,我的建議是:如果你需要多語言的支持,你應(yīng)該選擇AXIS2。

如果你需要把你的實現(xiàn)側(cè)重JAVA并希望和Spring集成,CXF就是更好的選擇,特別是把你的Web Service嵌入其他的程序中。

如果你覺得這兩個框架的新特性對于你并沒有太大的用處,你會覺得Axis1也是不錯的選擇,你應(yīng)該繼續(xù)使用它直到你有充分的理由去更換它。

上述就是小編為大家分享的JAVA開發(fā)中使用的幾種Web Service框架有哪些了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI