パッケージ jakarta.xml.soap
jakarta.xml.soap パッケージの API を使用すると、次のことができます。
- 指定されたエンドポイントへのポイントツーポイント接続を作成します
- SOAP メッセージを作成する
- XML フラグメントを作成する
- SOAP メッセージのヘッダーにコンテンツを追加する
- SOAP メッセージの本文にコンテンツを追加する
- アタッチメントパーツを作成し、それらにコンテンツを追加します
- SOAP メッセージの一部にアクセス / 追加 / 変更する
- SOAP 障害情報の作成 / 追加 / 変更
- SOAP メッセージからコンテンツを抽出する
- SOAP リクエスト / レスポンスメッセージを送信します
このドキュメントでの SAAJ への参照は、特に明記されていない限り、添付ファイル API を備えた Jakarta SOAP を指します。
このドキュメントでの JAXB への参照は、特に明記されていない限り、Jakarta XML Binding を指します。
さらに、jakarta.xml.soap パッケージの API は、org.w3c.dom パッケージの対応する API を継承します。これは、SOAPMessage の SOAPPart も DOM レベル 2 Document であり、DOM を使用するアプリケーション、ツール、ライブラリによってそのように操作できることを意味します(詳細については、http://www.w3.org/DOM/ を参照してください)。DOM API を使用して通常の DOM ノードを SAAJ ツリーに追加することは可能ですが、ツリーを調べたり操作したりする場合は、SAAJAPI が SAAJ 型を返す必要があることに注意してください。これを実現するために、SAAJ API(具体的には SOAPElement.getChildElements())は、SAAJ 要件に関連して誤って型付けされたオブジェクトを、必要な型の同等のオブジェクトにサイレントに置き換えることができます。これらの置換によってツリーの論理構造が変更されることは決してないため、DOM API の観点からは、ツリーは変更されません。ただし、ツリーの物理的構成が変更され、置き換えられたノードへの参照は、ツリーの一部ではなくなったノードを参照するようになります。SAAJ API は、必要がない場合はこれらの置換を行うことを許可されていないため、置換オブジェクトがその後 SAAJAPI への呼び出しによってサイレントに置換されることはありません。
これが実際に意味することは、DOMAPI を使用してツリーを操作した後にツリーで SAAJAPI の使用を開始するアプリケーションは、ツリーがすべての SAAJ ツリーに変換され、ツリー内のオブジェクトへの参照が取得されたと想定する必要があるということです。DOMAPI の使用は無効になりました。SAAJAPI から DOMAPI に切り替えると、無効な参照が発生することは許可されておらず、SAAJAPI を排他的に使用することもできません。無効な参照のリスクを引き起こすのは、特定の SAAJ ツリーでの DOMAPI の使用から SAAJAPI の使用への切り替えのみです。
SAAJ 実装の発見
特定の実装を検出してロードするために、SAAJAPI で定義されているいくつかのファクトリがあります。
最初の 3 つは、一般的なルックアップ手順を使用して実装クラスを決定するnewInstance() メソッドを定義します。- ファクトリクラスと同じ名前のシステムプロパティが設定されているかどうかを確認します(例:
jakarta.xml.soap.SOAPFactory)。そのようなプロパティが存在する場合、その値は実装クラスの完全修飾名であると見なされます。ルックアップのこのフェーズでは、SAAJ 実装の JVM ごとのオーバーライドが有効になります。 ServiceLoaderSE クラスで定義されているサービスプロバイダーのロード機能を使用して、デフォルトのロードメカニズムSEを使用してサービスの実装を見つけてロードしようとします。- 最後に、上記のすべての手順が失敗した場合、
SAAJMetaFactoryインスタンスを使用して特定の実装を見つけるか(MessageFactoryおよびSOAPFactoryの場合)、プラットフォームのデフォルトの実装を使用します(SOAPConnectionFactory)。SAAJMetaFactoryが使用されるときはいつでも、実際のインスタンスを取得するためのルックアップ手順が実行されます。
インターフェースのサマリー インターフェース 説明 Detail DetailEntryオブジェクトのコンテナー。DetailEntry SOAPFaultオブジェクトの詳細を示すDetailオブジェクトのコンテンツ。Name XML 名の表現。Node XML ドキュメント内のノード(要素)の表現。SOAPBody SOAP メッセージの SOAP 本体要素の内容を表すオブジェクト。SOAPBodyElement SOAPBodyElementオブジェクトは、SOAPBodyオブジェクトのコンテンツを表します。SOAPConstants SOAP プロトコルに関連する定数の定義。SOAPElement 許可されているが、SOAP 仕様で具体的に規定されていない SOAP メッセージの要素を表すオブジェクト。SOAPEnvelope SOAPPartオブジェクトの SOAPHeader および SOAPBody 部分のコンテナー。SOAPFault エラーおよび / またはステータス情報を含むSOAPBodyオブジェクト内の要素。SOAPFaultElement SOAPFaultオブジェクトのコンテンツの表現。SOAPHeader SOAP ヘッダー要素の表現。SOAPHeaderElement SOAP エンベロープの SOAP ヘッダー部分の内容を表すオブジェクト。Text 値がテキストであるノードの表現。クラスのサマリー クラス 説明 AttachmentPart SOAPMessageオブジェクトへの単一のアタッチメント。MessageFactory SOAPMessageオブジェクトを作成するためのファクトリ。MimeHeader MIME ヘッダー名とその値を格納するオブジェクト。MimeHeaders メッセージの MIME 部分に存在する MIME ヘッダーを表すMimeHeaderオブジェクトのコンテナー。SAAJMetaFactory SAAJAPI で定義されたファクトリの実装クラスのアクセスポイント。SAAJResult SAAJ ツリーの形式で、JAXP 変換または JAXB マーシャリングの結果のホルダーとして機能します。SOAPConnection クライアントがリモートパーティに直接メッセージを送信するために使用できるポイントツーポイント接続(たとえば、URL で表されます)。SOAPConnectionFactory SOAPConnectionオブジェクトを作成するためのファクトリ。SOAPFactory SOAPFactoryは、SOAPXML ツリーに存在するさまざまなオブジェクトを作成するためのファクトリです。SOAPMessage すべての SOAP メッセージのルートクラス。SOAPPart SOAPMessageオブジェクトの SOAP 固有の部分のコンテナー。例外のサマリー 例外 説明 SOAPException SOAP 例外が発生したことを通知する例外。