2010-01-29 111 views

回答

12

我建議一個JAX-WS實現:JAX-WS RI(這是Metro的一部分)或Apache CXF。從運行時的角度來看,兩者都非常接近,但許多人發現CXF有更好的文檔(可能是一個重要的標準)。如果這對你很重要(實際上,體面的框架不能忽略Spring,所以這並不意外),它們都提供了與Spring的集成。

Spring-WS是另一種選擇,但不符合JAX-WS標準,僅支持合同優先方法(來自XSD) - 這是一種哲學選擇 - 並且不支持許多WS- *標準(雖然您可能不需要)。在任何情況下,我都會遠離Axis 2及其可怕的部署體系結構和打包地獄(Axis 2 webapp本身是需要打包到特定檔案中的Web服務的容器)。我發現它完全反作用。最重要的是,它甚至不是perform really well

1

看看Axis。它非常簡單易用。 http://ws.apache.org/axis/

+4

軸很爛,我不明白爲什麼人們不斷提示它。 – 2010-01-29 13:51:37

+3

如果你花一分鐘的時間解釋爲什麼你認爲Axis非常糟糕,你的評論會更有價值和更相關。 – 2010-01-29 13:53:10

+1

@Jim我已經在我的答案中添加了詳細信息來說明這一點。 – 2010-01-29 14:01:17

2

Spring框架將是這種需求的明確贏家。 Spring和它的模塊,包括彈簧安全,彈簧web服務,使它成爲這個適合的。

+0

春天很好,但你會寫很多代碼 – Greg 2010-01-29 15:36:24

1

我同意Spring-WS選項。我已經在不同的時間使用過它,它很快成爲我的網絡服務選擇,除非有其他因素可以明確排除。

雖然這是有點偏離主題,如果你在規劃階段,我會提出以下建議。

  1. 選擇自頂向下的方法。 Spring-WS肯定支持這個(這是首選的方法)。這樣,如果您對底層代碼進行更改,則無需擔心意外更新WSDL。同樣在設計時,您可以將WSDL視爲接口點,而不是像其他精細的文檔一樣。

  2. 使用JAXB生成您的請求/響應對象。從長遠來看,這非常容易,並且確實有助於確保您按照WSDL的要求進行編碼(我查看了很多次生成的對象,並發現它們看起來並不對,只是發現我已經修改過WSDL不正確)。

  3. 在您的端點中使用註釋。

這些是要點。祝你好運 :-)。

相關問題