2009-10-22 76 views
9

Sun Metro和Apache CXF在Java中進行web服務開發的相對優勢和弱點是什麼?我還應該看到另一個框架嗎?Sun地鐵與Apache CXF之間的Web服務開發比較?

+1

看看[WS StackComparison](http://wiki.apache.org/ws/StackComparison) - 這會給你帶來一些想法。 – 2011-10-21 16:30:36

回答

5

我幾個月前就在你的位置上,最後看着地鐵。

對我來說,殺手功能就是Metro使用標準註釋將給定的方法公開爲Web服務所有膠水代碼都可以在運行時自動生成。即在我們當前的部署平臺Java 5下構建和部署時,不需要額外的步驟來製作和部署標準servlet容器(2.5我相信)。

這對我們工作得非常好。

我去標準註釋的原因非常簡單,我們的應用程序幾十年來一直傾向於文學生活,在這之後必須進行一些維護。通過編碼到一個接口而不是一個實現,我們可以替換代碼下的整個腳手架,而無需更改實現Web服務的代碼。在十年(或更長時間)任何具體的實施可能已經枯萎並死亡,但其他實施可能已經上升並立即可插入。

看看你今天有多少選擇一個servlet容器......這就是一個好的API的力量!


編輯:顯然,Java 6運行時包括Metro堆棧和一個最小的Web服務器。換句話說,單獨的JRE可能是上面提到的腳手架替換:D

+2

+1因爲這些可憐的傻瓜在10年的時間裏不得不想出這些代碼。可能是我們中的一員! – 2009-10-22 20:09:27

+0

@yar,我只是希望它不會是我:) – 2009-10-22 22:24:59

+0

AFAIK,Java 6不包括Metro,它包括JAX-WS RI,它是Metro的一個子集(Metro = JAX-WS + WSIT /探戈)。但是,對於Java 6,您可以使用嵌入在Java SE 6中的HTTP服務器,通過'Endpoint.publish()'方法發佈Web服務端點。請參閱http://www.javapassion.com/webservices/jaxwsjavase6。 PDF格式。 – 2009-10-22 22:43:19

9

Metro和CXF都是符合JAX-WS的Web服務棧,從運行時的角度來看,它們之間的選擇很少。

但是,如果您願意超越JAX-WS規範,CXF有更好的文檔,更多的靈活性和附加功能。僅在單據的基礎上,我會每次都選擇新城交通局。

但是,我會在Metro或CXF上選擇Spring WebServices。它不符合JAX-WS標準,但我不認爲這是一個問題。它也比其中任何一個都簡單得​​多,而且更靈活。強烈推薦。

+0

您能否詳細介紹一下您所談論的CXF功能和Spring WS的同上? – 2009-10-22 22:24:21

+0

CXF和Spring-WS的喜悅是,你可以去他們的網站,閱讀優秀的文檔,看看他們能做什麼:) – skaffman 2009-10-23 07:08:55

+1

我知道 - 你可能已經看到我一直在尋找這樣的框架。我在想 - 像 - 實際的經驗和你曾表示過的那樣,我有這個奇怪的想法,也許你甚至想分享它們......對我感到羞恥。 – 2009-10-23 19:59:36