SAAJ バージョンの違い
SOAP with Attachments API for Java™ (SAAJ) インターフェースのバージョン 1.3 では、Web サービス環境における SOAP 1.2 メッセージのサポートを拡張しています。SAAJ 1.2 とこのトピックで紹介する SAAJ 1.3 の間には、いくつかの相違点があります。
一般的な Web サービス環境においては、Java 標準に基づく基本的なコードを使用して一連の Java オブジェクトを変換します。 SAAJ インターフェースは API を提供して SOAP メッセージの読み取り、書き込み、および送受信を行い、SOAP メッセージへの添付ファイルとして送信されるバイナリー・コンテンツを推奨しています。
SAAJ 1.3 は SOAP 1.1 および SOAP 1.2 メッセージに合わせてあり、Java API for XML Web Services (JAX-WS) プログラミング・モデルおよび Java API for XML-Based RPC (JAX-RPC) プログラミング・モデルでサポートされています。これに対し、SAAJ 1.2 は SOAP 1.1 メッセージでしか操作できません。
String text = soapFault.getFaultString();
メッセージが SOAP 1.1 に基づく場合、getFaultString () は faultString 値を戻します。
SOAP 1.2 を使用している場合は、getFaultString () は Reason 値を戻します。
また、SAAJ 1.3 インターフェースでは新しいメソッド getReasonText
(Locale) を提供しており、これは特定の Reason 値をとります。メッセージが SOAP 1.1 に基づく場合、getReasonText (Locale) メソッドは文書化された例外を戻します。SAAJ
1.3 インターフェースは既存のコードをサポートし、SOAP 1.1 メッセージと SOAP 1.2 メッセージの両方を処理します。SAAJ 1.2 と SAAJ 1.3 の間のその他の違いを以下のリストに示します。
- SAAJMetaFactory インターフェース
単一の場所での SOAP ファクトリー・クラスの作成をサポートするために、SAAJMetaFactory SPI が導入されています。
- SAAJResult クラス
SAAJResult オブジェクトは SAAJ ツリーで、Java API for XML Processing (JAX-P) 変換または Java Architecture for XML Binding (JAXB) のマーシャルの結果に対する所有者として機能します。変換結果が有効な SAAJ ツリーであることが予想された場合には、SAAJResult クラスが導入されて使用可能度が高められます。
- Name の代わりに QName を受け入れる、多重定義されているメソッド
QName は XML 修飾名を表すことが優先されます。このため、多重定義されているメソッドはすべての SAAJ API に導入され、そこで該当するメソッドが引数として javax.xml.soap.Name 名を受け入れます。
- AttachmentPart、SOAPBody、および SOAPElement インターフェースとクラスの新しいメソッド
新しい SOAP 機能を操作する場合は、ユーザー支援のためにこれらの新しいメソッドを使用します。
- SOAPPart は現在、javax.xml.soap.Node メソッドです。
SOAPPart オブジェクトは現在、SOAP ノード・メソッドとも考えられます。
サポートされる標準および仕様の完全なリストについては、Web サービス仕様書および API 文書を参照してください。