2009-06-12 14 views
3

今週はSOAPパッケージjavax.xml.soap。*を使っていたJava WebServiceプロジェクトを調べなければなりませんでした。javax.xml.soapはapache cxfよりも優れていますか?

SOAP Webサービスを作成する前にこれを使用していませんでしたが、Apache CXFライブラリを使用しました。

私が持つjavax.xml.soapの質問があります。*

が、それはパフォーマンスの面でCXFよりも良いですか?

私は、CXFがSOAP APIを全く心配する必要がなく、単に注釈を使用するだけで数分でサービスを作成できるという点で驚くべきことがあります。

また、MessageFactoryとSOAPConnectionはスレッドセーフですか?私は毎回これらのオブジェクトの作成を保存するようにこれを求めています。作成がオーバーヘッドではない場合は問題は発生しませんが、そうであれば1回だけ作成します。私はスレッドの安全性についてjavadocで見つけることができませんでした。

答えて

6

javax.xml.soapは低レベルのAPIであり、CXFは多くの実装の1つであるAPIの実装です。 CXFはすべての実装と同様に、下にjavax.xml.soapを使用します。

より意味のある比較は、JAX-WS-RIやCXFなどのJAX-WS実装間の比較です。

5

実際、CXFはその必要がない限り(JAX-WSハンドラが存在する、プロバイダ型のものなど)、javax.xml.soap(SAAJ)を使用しません。

一般に、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/summary-proprietary-features-saaj-ri-134))。 –

関連する問題