2013-03-18 2 views
14

SAAJ:Java用の添付ファイルAPIと SOAPSAAJが提供するMTOMと添付ファイル機能の違いは何ですか?

MTOM: SOAPメッセージ送信最適化メカニズム

私の簡単な理解:は、SAAJのバージョンを最適化MTOMは、より多くのであると彼らは、SOAP添付ファイルを扱います。これは正しいです?

同じことを行う方法は2通りありますか?または、ここでリンゴとオレンジを比較しようとしていますか?

SAAJとMTOMを一緒に使用できますか?

答えて

30

少し複雑です。 SAAJは、SOAPエンベロープの操作に使用される古いJava APIであるため、バイナリの添付ファイルを送信することができます(メッセージ本文のBASE64エンコードされた文字列ではありません)。 SAAJは低レベルのインターフェースの一種です。あなたのコードに「手で」のSOAPエンベロープを作成し、添付ファイルを追加する必要があります。

レガシーコードで作業する必要がなく、SOAPエンベロープで直接作業したい場合は、JAX-WS DispatcherおよびProviderインターフェイスを参照してください。

MTOMは別の獣です。これは完全なWebサービスAPIではなく、添付ファイルを送信する特殊な方法です。 JAX-WSやSAAJのような「真の」WebサービスAPI(SAAJがそのように動作するように管理している場合)によって使用できます。

MTOMは、BASE64(オーバーヘッドが大きい)と比較して、バイナリデータを送信するためのより効率的な方法であるXOPで(ほぼ)常に使用されます。添付ファイルはMIME添付ファイルとして別々に送信され、MIMEタイプは適切に処理されます(これはJava-Microsoftテクノロジのやりとりの問題でした)。

現在、SAAJについては忘れて、ほとんどのJAX-WS実装で提供されるJAX-WS + MTOMサポートを使用してください。

+1

ニースの回答。それはdefinitellyより多くのupvotesの価値がある。 – Hubert

関連する問題