- java.lang.Object
-
- javax.xml.soap.SOAPMessage
-
public abstract class SOAPMessage extends Object
すべてのSOAPメッセージのルート・クラスです。 ワイヤー上を転送されるため、SOAPメッセージはXMLドキュメントまたは最初の本体がXML/SOAPドキュメントであるMIMEメッセージです。SOAPMessage
オブジェクトは、SOAP部およびオプションの1つ以上の添付部から構成されます。SOAPMessage
オブジェクトのSOAP部はSOAPPart
オブジェクトであり、メッセージのルーティングおよび識別に使用される情報を含み、アプリケーション固有のコンテンツが含まれることもあります。 メッセージのSOAP部のすべてのデータは、XML形式である必要があります。デフォルトで、新しい
SOAPMessage
オブジェクトには次のものが含まれます。SOAPPart
オブジェクトSOAPEnvelope
オブジェクトSOAPBody
オブジェクトSOAPHeader
オブジェクト
SOAPMessage.getSOAPPart()
メソッドを呼び出して取得できます。SOAPEnvelope
オブジェクトはSOAPPart
オブジェクトから取得され、SOAPEnvelope
オブジェクトを使用して、SOAPBody
オブジェクトおよびSOAPHeader
オブジェクトを取得します。SOAPPart sp = message.getSOAPPart(); SOAPEnvelope se = sp.getEnvelope(); SOAPBody sb = se.getBody(); SOAPHeader sh = se.getHeader();
必須の
SOAPPart
オブジェクトに加え、SOAPMessage
オブジェクトにはゼロ個以上のAttachmentPart
オブジェクトが含まれる場合があり、それぞれにはアプリケーション固有のデータが含まれています。SOAPMessage
インタフェースはAttachmentPart
オブジェクトを作成するメソッドを提供し、SOAPMessage
オブジェクトに追加するメソッドも提供します。SOAPMessage
オブジェクトを受け取った側は、個々の添付部を取得してコンテンツを調べることができます。SOAPメッセージの残りの部分とは異なり、添付部はXML形式である必要はなく、単純なテキストからイメージ・ファイルまであらゆる形式が可能です。 したがって、XML形式でないメッセージのコンテンツは、
AttachmentPart
オブジェクトの中に入れる必要があります。MessageFactory
オブジェクトは、特定の実装またはSAAJのアプリケーションで特別の動作をするSOAPMessage
オブジェクトを作成できます。 たとえば、MessageFactory
オブジェクトはebXMLなどの特定のプロファイルに適合するSOAPMessage
オブジェクトを生成できます。 この場合、MessageFactory
オブジェクトはebXMLヘッダーで初期化されたSOAPMessage
オブジェクトを生成することがあります。下位ソース互換を確保するため、SAAJのバージョン1.1のあとにこのクラスに追加されるメソッドは、すべて抽象ではなく具象であり、すべてデフォルトの実装を持ちます。 これらのメソッドのJavaDocで特に明記されていないかぎり、デフォルトの実装は単に
UnsupportedOperationException
をスローし、特定の動作を提供するメソッドによってSAAJ実装コードがオーバーライドする必要があります。 ただし、本来書かれた仕様よりもあとのバージョンの仕様に準拠しているという主張がなされない限り、従来のクライアント・コードにはこの制約はありません。 SOAPMessageクラスを拡張する従来のクラスは、変更することなく後続のバージョンに対してコンパイルまたは実行、あるいはその両方を行うことができます。 そのようなクラスが正常に実装された場合、書かれた仕様のバージョンに対して正常に動作し続けます。- 導入されたバージョン:
- 1.6
- 関連項目:
MessageFactory
,AttachmentPart
-
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static String
CHARACTER_SET_ENCODING
SOAPメッセージの文字タイプ・エンコーディングを指定します。static String
WRITE_XML_DECLARATION
送信時、SOAPメッセージにXML宣言を含めるかどうかを指定します。
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 SOAPMessage()
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 abstract void
addAttachmentPart(AttachmentPart attachmentPart)
指定されたAttachmentPart
オブジェクトをこのSOAPMessage
オブジェクトに追加します。abstract int
countAttachments()
このメッセージの添付の数を取得します。abstract AttachmentPart
createAttachmentPart()
空の新しいAttachmentPart
オブジェクトを作成します。AttachmentPart
createAttachmentPart(Object content, String contentType)
AttachmentPart
オブジェクトを作成し、指定したコンテンツ・タイプの指定したデータを使用して生成します。AttachmentPart
createAttachmentPart(DataHandler dataHandler)
AttachmentPart
オブジェクトを作成し、指定したDataHandler
オブジェクトを使用して生成します。abstract AttachmentPart
getAttachment(SOAPElement element)
このSOAPElement
が参照する添付と関連付けられたAttachmentPart
オブジェクト、またはそのような添付が存在しない場合はnull
を返します。abstract Iterator<AttachmentPart>
getAttachments()
このSOAPMessage
オブジェクトの一部であるAttachmentPart
オブジェクトをすべて取得します。abstract Iterator<AttachmentPart>
getAttachments(MimeHeaders headers)
指定したヘッダーと一致するヘッダー・エントリのあるAttachmentPart
オブジェクトをすべて取得します。abstract String
getContentDescription()
SOAPMessage
オブジェクトのコンテンツの説明を取得します。abstract MimeHeaders
getMimeHeaders()
このSOAPMessage
オブジェクトのトランスポート固有のMIMEヘッダーすべてを、トランスポートに依存しない形式で返します。Object
getProperty(String property)
指定されたプロパティの値を取得します。SOAPBody
getSOAPBody()
このSOAPMessage
オブジェクトに含まれるSOAP Bodyを取得します。SOAPHeader
getSOAPHeader()
このSOAPMessage
オブジェクトに含まれるSOAP Headerを取得します。abstract SOAPPart
getSOAPPart()
このSOAPMessage
オブジェクトのSOAP部を取得します。abstract void
removeAllAttachments()
このSOAPMessage
オブジェクトに追加されたAttachmentPart
オブジェクトをすべて削除します。abstract void
removeAttachments(MimeHeaders headers)
指定したヘッダーと一致するヘッダー・エントリのあるAttachmentPart
オブジェクトをすべて削除します。abstract void
saveChanges()
SOAPMessage
オブジェクトに加えられた変更をすべて更新します。abstract boolean
saveRequired()
このSOAPMessage
オブジェクトに対して、saveChanges
メソッドを呼び出す必要があるかどうかを示します。abstract void
setContentDescription(String description)
指定した説明でSOAPMessage
オブジェクトのコンテンツの説明を設定します。void
setProperty(String property, Object value)
指定した値を指定したプロパティと関連付けます。abstract void
writeTo(OutputStream out)
このSOAPMessage
オブジェクトを指定した出力ストリームに書き込みます。
-
-
-
フィールドの詳細
-
CHARACTER_SET_ENCODING
public static final String CHARACTER_SET_ENCODING
SOAPメッセージの文字タイプ・エンコーディングを指定します。 有効な値には、"utf-8"および"utf-16"が含まれます。 さらにサポートされる値については、ベンダーからのマニュアルを参照してください。 デフォルトは"utf-8"です。- 導入されたバージョン:
- 1.6, SAAJ 1.2
- 関連項目:
SOAPMessage.setProperty
、定数フィールド値
-
WRITE_XML_DECLARATION
public static final String WRITE_XML_DECLARATION
送信時、SOAPメッセージにXML宣言を含めるかどうかを指定します。 有効な値は、"true"と"false"のみです。 デフォルトは"false"です。- 導入されたバージョン:
- 1.6, SAAJ 1.2
- 関連項目:
SOAPMessage.setProperty
、定数フィールド値
-
-
メソッドの詳細
-
setContentDescription
public abstract void setContentDescription(String description)
指定した説明でSOAPMessage
オブジェクトのコンテンツの説明を設定します。- パラメータ:
description
- このメッセージの内容を表すString
- 関連項目:
getContentDescription()
-
getContentDescription
public abstract String getContentDescription()
SOAPMessage
オブジェクトのコンテンツの説明を取得します。- 戻り値:
- このメッセージの内容を表す
String
。説明が設定されていない場合はnull
- 関連項目:
setContentDescription(java.lang.String)
-
getSOAPPart
public abstract SOAPPart getSOAPPart()
このSOAPMessage
オブジェクトのSOAP部を取得します。SOAPMessage
オブジェクトは1つ以上の添付を含んでおり、SOAP Partはメッセージで最初のMIME本体である必要があります。- 戻り値:
- この
SOAPMessage
オブジェクトのSOAPPart
オブジェクト
-
getSOAPBody
public SOAPBody getSOAPBody() throws SOAPException
このSOAPMessage
オブジェクトに含まれるSOAP Bodyを取得します。- 戻り値:
- この
SOAPMessage
オブジェクトに含まれているSOAPBody
オブジェクト - 例外:
SOAPException
- SOAP Bodyが存在しないか、取得できない場合- 導入されたバージョン:
- 1.6, SAAJ 1.2
-
getSOAPHeader
public SOAPHeader getSOAPHeader() throws SOAPException
このSOAPMessage
オブジェクトに含まれるSOAP Headerを取得します。- 戻り値:
- この
SOAPMessage
オブジェクトに含まれているSOAPHeader
オブジェクト - 例外:
SOAPException
- SOAP Headerが存在しないか、取得できない場合- 導入されたバージョン:
- 1.6, SAAJ 1.2
-
removeAllAttachments
public abstract void removeAllAttachments()
このSOAPMessage
オブジェクトに追加されたAttachmentPart
オブジェクトをすべて削除します。このメソッドは、SOAP部には影響を与えません。
-
countAttachments
public abstract int countAttachments()
このメッセージの添付の数を取得します。 このカウントには、SOAP部は含まれません。- 戻り値:
- この
SOAPMessage
オブジェクトの一部であるAttachmentPart
オブジェクトの数
-
getAttachments
public abstract Iterator<AttachmentPart> getAttachments()
このSOAPMessage
オブジェクトの一部であるAttachmentPart
オブジェクトをすべて取得します。- 戻り値:
- このメッセージの添付すべてについてのイテレータ
-
getAttachments
public abstract Iterator<AttachmentPart> getAttachments(MimeHeaders headers)
指定したヘッダーと一致するヘッダー・エントリのあるAttachmentPart
オブジェクトをすべて取得します。 返される添付には、指定したもの以外のヘッダーも含まれます。- パラメータ:
headers
- 検索するMIMEヘッダーを含むMimeHeaders
オブジェクト- 戻り値:
- 指定したヘッダーの1つに一致するヘッダーを含む添付すべてについてのイテレータ
-
removeAttachments
public abstract void removeAttachments(MimeHeaders headers)
指定したヘッダーと一致するヘッダー・エントリのあるAttachmentPart
オブジェクトをすべて削除します。 削除される添付には、指定したもの以外のヘッダーも含まれます。- パラメータ:
headers
- 検索するMIMEヘッダーを含むMimeHeaders
オブジェクト- 導入されたバージョン:
- 1.6, SAAJ 1.3
-
getAttachment
public abstract AttachmentPart getAttachment(SOAPElement element) throws SOAPException
このSOAPElement
が参照する添付と関連付けられたAttachmentPart
オブジェクト、またはそのような添付が存在しない場合はnull
を返します。 参照は、「SOAP Messages with Attachments」で説明されているhref
属性、またはスキーマ型ref:swaRefの要素用に「WS-I Attachments Profile 1.0」で説明されているとおり、URIを含む単一のText
子ノードを介して行えます。 これら2つのメカニズムはサポートされている必要があります。href
属性を使用した参照のサポートとは、xop:Include要素(XOP)である要素に対してもこのメソッドがサポートされる必要があるという意味でもあります。その他の参照メカニズムは、この標準の個々の実装によってサポートされることがあります。 詳細は、ベンダーにご連絡ください。- パラメータ:
element
- Attachmentへの参照を含むSOAPElement
- 戻り値:
- 参照された
AttachmentPart
。そのようなAttachmentPart
が存在しないか、このSOAPElement
内に参照が見つからない場合はnull。 - 例外:
SOAPException
- 添付にアクセスしようとしたときにエラーが発生した場合- 導入されたバージョン:
- 1.6, SAAJ 1.3
-
addAttachmentPart
public abstract void addAttachmentPart(AttachmentPart attachmentPart)
指定されたAttachmentPart
オブジェクトをこのSOAPMessage
オブジェクトに追加します。AttachmentPart
オブジェクトは、メッセージに追加する前に作成する必要があります。- パラメータ:
attachmentPart
- このSOAPMessage
オブジェクトの一部になるattachmentPart
オブジェクト- 例外:
IllegalArgumentException
- 指定されたattachmentPart
オブジェクトに問題があった場合
-
createAttachmentPart
public abstract AttachmentPart createAttachmentPart()
空の新しいAttachmentPart
オブジェクトを作成します。addAttachmentPart
メソッドは、この新しいAttachmentPart
オブジェクトをこのSOAPMessage
オブジェクトの添付にするために、新しいAttachmentPartオブジェクトとともにパラメータとして呼び出される必要があります。- 戻り値:
- データが取り込まれ、この
SOAPMessage
オブジェクトに追加される新しいAttachmentPart
オブジェクト
-
createAttachmentPart
public AttachmentPart createAttachmentPart(DataHandler dataHandler)
AttachmentPart
オブジェクトを作成し、指定したDataHandler
オブジェクトを使用して生成します。- パラメータ:
dataHandler
- このSOAPMessage
オブジェクトのコンテンツを生成するjavax.activation.DataHandler
オブジェクト- 戻り値:
- 指定された
DataHandler
オブジェクトによって生成されるデータを含む新しいAttachmentPart
オブジェクト - 例外:
IllegalArgumentException
- 指定したDataHandler
オブジェクトに問題があった場合- 関連項目:
DataHandler
、DataContentHandler
-
getMimeHeaders
public abstract MimeHeaders getMimeHeaders()
このSOAPMessage
オブジェクトのトランスポート固有のMIMEヘッダーすべてを、トランスポートに依存しない形式で返します。- 戻り値:
MimeHeader
オブジェクトを格納するMimeHeaders
オブジェクト
-
createAttachmentPart
public AttachmentPart createAttachmentPart(Object content, String contentType)
AttachmentPart
オブジェクトを作成し、指定したコンテンツ・タイプの指定したデータを使用して生成します。Object
の型は、Content-Type
で指定した値に対応する必要があります。- パラメータ:
content
- 作成されるAttachmentPart
オブジェクトのコンテンツを含むObject
contentType
- コンテンツのタイプを示すString
オブジェクト。たとえば、"text/xml"、"text/plain"、"image/jpeg"- 戻り値:
- 指定したデータを含む新しい
AttachmentPart
オブジェクト - 例外:
IllegalArgumentException
- contentTypeがコンテンツ・オブジェクトのタイプと一致しない場合、または指定されたコンテンツ・オブジェクトのDataContentHandler
オブジェクトがなかった場合に、スローされることがある- 関連項目:
DataHandler
、DataContentHandler
-
saveChanges
public abstract void saveChanges() throws SOAPException
SOAPMessage
オブジェクトに加えられた変更をすべて更新します。 このメソッドは、writeTo(OutputStream)
の呼出し時に自動的に呼び出されます。 ただし、受信したメッセージまたはすでに送信されたメッセージに対して変更が加えられた場合は、saveChanges
メソッドを明示的に呼び出して変更を保存する必要があります。saveChanges
メソッドは、リード・バックできるすべての変更(たとえば、メッセージIDをサポートするプロファイル内のMessageId)も生成します。 送信目的で作成されるメッセージ内のすべてのMIMEヘッダーは、saveChanges
が呼び出されたあとでのみ有効な値を持つことが保証されます。さらに、このメソッドは、構成するすべての
AttachmentPart
オブジェクトからのデータがメッセージに入れられたポイントにマークを設定します。- 例外:
SOAPException
- このメッセージの変更を保存する際に問題があった場合。
-
saveRequired
public abstract boolean saveRequired()
このSOAPMessage
オブジェクトに対して、saveChanges
メソッドを呼び出す必要があるかどうかを示します。- 戻り値:
saveChanges
を呼び出す必要がある場合はtrue
、そうでない場合はfalse
。
-
writeTo
public abstract void writeTo(OutputStream out) throws SOAPException, IOException
このSOAPMessage
オブジェクトを指定した出力ストリームに書き込みます。 外部化形式は、SOAP 1.1 with Attachments仕様で定義されているものと同じです。添付がない場合は、XMLストリームだけが書き出されます。 添付があるメッセージでは、
writeTo
がMIMEでエンコードされたバイト・ストリームを書き込みます。このメソッドは、メッセージのトランスポート固有のMIMEヘッダーは書き込みません。
- パラメータ:
out
- このSOAPMessage
オブジェクトを書き込むOutputStream
オブジェクト- 例外:
IOException
- 入出力エラーが発生した場合SOAPException
- このSOAPメッセージの外部化で問題があった場合
-
setProperty
public void setProperty(String property, Object value) throws SOAPException
指定した値を指定したプロパティと関連付けます。 このプロパティと関連付けられた値がすでに存在する場合は、古い値が置換されます。有効なプロパティ名には、
WRITE_XML_DECLARATION
およびCHARACTER_SET_ENCODING
が含まれます。 標準SAAJプロパティにはすべて、先頭に「javax.xml.soap」が付けられます。 ベンダーは実装に固有のプロパティを追加できます。 これらのプロパティは、ベンダー固有のパッケージ名を先頭に付ける必要があります。プロパティ
WRITE_XML_DECLARATION
を"true"
に設定すると、SOAPメッセージの最初にXML宣言が書き出されます。 デフォルト値の「false」は、この宣言を抑止します。CHARACTER_SET_ENCODING
プロパティのデフォルトは値"utf-8"
で、SOAPメッセージはUTF-8を使用してエンコードされます。CHARACTER_SET_ENCODING
を"utf-16"
に設定すると、SOAPメッセージはUTF-16を使用してエンコードされます。ある実装では、UTF-8およびUTF-16に加えて別のエンコーディングも可能です。 詳細はベンダーのマニュアルを参照してください。
- パラメータ:
property
- 指定された値が関連付けられるプロパティ。value
- 指定されるプロパティに関連付けられる値- 例外:
SOAPException
- プロパティ名が認識されない場合。- 導入されたバージョン:
- 1.6, SAAJ 1.2
-
getProperty
public Object getProperty(String property) throws SOAPException
指定されたプロパティの値を取得します。- パラメータ:
property
- 取得するプロパティの名前- 戻り値:
- 指定されたプロパティに関連付けられた値。該当するプロパティが存在しない場合は
null
。 - 例外:
SOAPException
- プロパティ名が認識されない場合。- 導入されたバージョン:
- 1.6, SAAJ 1.2
-
-