2009-06-12 104 views
3

這周我不得不查看一個使用SOAP包javax.xml.soap。*的Java WebService項目。javax.xml.soap比apache cxf更好嗎?

我以前沒有用過這個,但是Apache CXF庫創建了一個SOAP web服務。

我有javax.xml.soap中的一個問題。*

它比CXF在性能方面更好?

在編碼方面我看到CXF是驚人的,因爲沒有必要擔心在所有SOAP API和簡單的使用說明可以在幾分鐘內創建一個服務。

也是MessageFactory和SOAPConnection是線程安全嗎?我要求這個每次都保存這些對象的創建。如果創建不是開銷然後沒有問題,但如果它是然後我想創建它們只有一次。我無法在javadoc中找到關於線程安全性的信息。

回答

6

javax.xml.soap中是一個低級別的API,CXF是API,許多實施方式之一的實施方案。 CXF使用下面的javax.xml.soap,就像所有的實現一樣。

甲更有意義的比較是JAX-WS實現方式中,如JAX-WS-RI和CXF之間。

5

其實,CXF不使用javax.xml.soap中(SAAJ)下方,除非這樣做需要它(JAX-WS處理程序存在,提供類的東西,等...)。

一般情況下,使用SAAJ會比CXF慢,因爲它不允許流這CXF通常會做。使用SAAJ,整個SOAP消息作爲DOM存儲在內存中。也就是說,如果您希望/需要將數據作爲DOM,則可能會稍微快一點,因爲需要的處理更少。

+0

事情發生了變化:SAAJ> = 1.3.4可以處理這個問題(見[非常大的XML負載創建的SOAPMessages /處理非常大的MIME消息](http://weblogs.java.net/blog/kumarjayanti/archive/2009/12/10 /摘要專有的功能-SAAJ-RI-134))。 – 2011-10-21 13:29:49