public abstract class SOAPMessage extends Object
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クラスを拡張する従来のクラスは、変更することなく後続のバージョンに対してコンパイルまたは実行、あるいはその両方を行うことができます。 そのようなクラスが正常に実装された場合、書かれた仕様のバージョンに対して正常に動作し続けます。
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(DataHandler dataHandler) |
AttachmentPartオブジェクトを作成し、指定したDataHandlerオブジェクトを使用して生成します。 |
AttachmentPart |
createAttachmentPart(Object content, String contentType) |
AttachmentPartオブジェクトを作成し、指定したコンテンツ・タイプの指定したデータを使用して生成します。 |
abstract AttachmentPart |
getAttachment(SOAPElement element) |
この
SOAPElementが参照する添付と関連付けられたAttachmentPartオブジェクト、またはそのような添付が存在しない場合はnullを返します。 |
abstract Iterator |
getAttachments() |
この
SOAPMessageオブジェクトの一部であるAttachmentPartオブジェクトをすべて取得します。 |
abstract Iterator |
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オブジェクトを指定した出力ストリームに書き込みます。 |
public static final String CHARACTER_SET_ENCODING
SOAPMessage.setProperty、定数フィールド値public static final String WRITE_XML_DECLARATION
SOAPMessage.setProperty、定数フィールド値public abstract void setContentDescription(String description)
SOAPMessageオブジェクトのコンテンツの説明を設定します。description - このメッセージの内容を表すStringgetContentDescription()public abstract String getContentDescription()
SOAPMessageオブジェクトのコンテンツの説明を取得します。String。説明が設定されていない場合はnullsetContentDescription(java.lang.String)public abstract SOAPPart getSOAPPart()
SOAPMessageオブジェクトのSOAP部を取得します。
SOAPMessageオブジェクトは1つ以上の添付を含んでおり、SOAP Partはメッセージで最初のMIME本体である必要があります。
SOAPMessageオブジェクトのSOAPPartオブジェクトpublic SOAPBody getSOAPBody() throws SOAPException
SOAPMessageオブジェクトに含まれるSOAP Bodyを取得します。
SOAPMessageオブジェクトに含まれているSOAPBodyオブジェクトSOAPException - SOAP Bodyが存在しないか、取得できない場合public SOAPHeader getSOAPHeader() throws SOAPException
SOAPMessageオブジェクトに含まれるSOAP Headerを取得します。
SOAPMessageオブジェクトに含まれているSOAPHeaderオブジェクトSOAPException - SOAP Headerが存在しないか、取得できない場合public abstract void removeAllAttachments()
SOAPMessageオブジェクトに追加されたAttachmentPartオブジェクトをすべて削除します。
このメソッドは、SOAP部には影響を与えません。
public abstract int countAttachments()
SOAPMessageオブジェクトの一部であるAttachmentPartオブジェクトの数public abstract Iterator getAttachments()
SOAPMessageオブジェクトの一部であるAttachmentPartオブジェクトをすべて取得します。public abstract Iterator getAttachments(MimeHeaders headers)
AttachmentPartオブジェクトをすべて取得します。 返される添付には、指定したもの以外のヘッダーも含まれます。 headers - 検索するMIMEヘッダーを含むMimeHeadersオブジェクトpublic abstract void removeAttachments(MimeHeaders headers)
AttachmentPartオブジェクトをすべて削除します。 削除される添付には、指定したもの以外のヘッダーも含まれます。 headers - 検索するMIMEヘッダーを含むMimeHeadersオブジェクト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への参照を含むSOAPElementAttachmentPart。そのようなAttachmentPartが存在しないか、このSOAPElement内に参照が見つからない場合はnull。SOAPException - 添付にアクセスしようとしたときにエラーが発生した場合public abstract void addAttachmentPart(AttachmentPart AttachmentPart)
AttachmentPartオブジェクトをこのSOAPMessageオブジェクトに追加します。 AttachmentPartオブジェクトは、メッセージに追加する前に作成する必要があります。 AttachmentPart - このSOAPMessageオブジェクトの部分となるAttachmentPartオブジェクトIllegalArgumentExceptionpublic abstract AttachmentPart createAttachmentPart()
AttachmentPartオブジェクトを作成します。 addAttachmentPartメソッドは、この新しいAttachmentPartオブジェクトをこのSOAPMessageオブジェクトの添付にするために、新しいAttachmentPartオブジェクトとともにパラメータとして呼び出される必要があります。 SOAPMessageオブジェクトに追加される新しいAttachmentPartオブジェクトpublic AttachmentPart createAttachmentPart(DataHandler dataHandler)
AttachmentPartオブジェクトを作成し、指定したDataHandlerオブジェクトを使用して生成します。dataHandler - このSOAPMessageオブジェクトのコンテンツを生成するjavax.activation.DataHandlerオブジェクトDataHandlerオブジェクトによって生成されるデータを含む新しいAttachmentPartオブジェクトIllegalArgumentException - 指定したDataHandlerオブジェクトに問題があった場合DataHandler、DataContentHandlerpublic abstract MimeHeaders getMimeHeaders()
SOAPMessageオブジェクトのトランスポート固有のMIMEヘッダーすべてを、トランスポートに依存しない形式で返します。MimeHeaderオブジェクトを格納するMimeHeadersオブジェクトpublic AttachmentPart createAttachmentPart(Object content, String contentType)
AttachmentPartオブジェクトを作成し、指定したコンテンツ・タイプの指定したデータを使用して生成します。 Objectの型は、Content-Typeで指定した値に対応する必要があります。 content - 作成されるAttachmentPartオブジェクトのコンテンツを含むObjectcontentType - コンテンツのタイプを示すStringオブジェクト。たとえば、"text/xml"、"text/plain"、"image/jpeg"AttachmentPartオブジェクトIllegalArgumentException - contentTypeがコンテンツ・オブジェクトのタイプと一致しない場合、または指定されたコンテンツ・オブジェクトのDataContentHandlerオブジェクトがなかった場合に、スローされることがあるDataHandler、DataContentHandlerpublic abstract void saveChanges()
throws SOAPException
SOAPMessageオブジェクトに加えられた変更をすべて更新します。 このメソッドは、writeTo(OutputStream)の呼出し時に自動的に呼び出されます。 ただし、受信したメッセージまたはすでに送信されたメッセージに対して変更が加えられた場合は、saveChangesメソッドを明示的に呼び出して変更を保存する必要があります。 saveChangesメソッドは、リード・バックできるすべての変更(たとえば、メッセージIDをサポートするプロファイル内のMessageId)も生成します。 送信目的で作成されるメッセージ内のすべてのMIMEヘッダーは、saveChangesが呼び出されたあとでのみ有効な値を持つことが保証されます。
さらに、このメソッドは、構成するすべてのAttachmentPartオブジェクトからのデータがメッセージに入れられたポイントにマークを設定します。
SOAPException - このメッセージへの変更を保存するときに問題が発生した場合。SOAPExceptionpublic abstract boolean saveRequired()
SOAPMessageオブジェクトに対して、saveChangesメソッドを呼び出す必要があるかどうかを示します。saveChangesを呼び出す必要がある場合はtrue、そうでない場合はfalse。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メッセージの外部化で問題があった場合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 - プロパティ名が認識されない場合。public Object getProperty(String property) throws SOAPException
property - 取得するプロパティの名前null。SOAPException - プロパティ名が認識されない場合。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。