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
- このメッセージの内容を表す String
getContentDescription()
public abstract String getContentDescription()
SOAPMessage
オブジェクトのコンテンツの説明を取得します。String
。説明が設定されていない場合は null
setContentDescription(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 への参照を含む SOAPElement
AttachmentPart
。そのような AttachmentPart
が存在しないか、この SOAPElement
内に参照が見つからない場合は null。SOAPException
- 添付にアクセスしようとしたときにエラーが発生した場合public abstract void addAttachmentPart(AttachmentPart AttachmentPart)
AttachmentPart
オブジェクトをこの SOAPMessage
オブジェクトに追加します。AttachmentPart
オブジェクトは、メッセージに追加する前に作成する必要があります。AttachmentPart
- この SOAPMessage
オブジェクトの部分となる AttachmentPart
オブジェクトIllegalArgumentException
public 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
、DataContentHandler
public abstract MimeHeaders getMimeHeaders()
SOAPMessage
オブジェクトのトランスポート固有の MIME ヘッダーすべてを、トランスポートに依存しない形式で返します。MimeHeader
オブジェクトを格納する MimeHeaders
オブジェクト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
public abstract void saveChanges() throws SOAPException
SOAPMessage
オブジェクトに加えられた変更をすべて更新します。このメソッドは、writeTo(OutputStream)
の呼び出し時に自動的に呼び出されます。ただし、受信したメッセージまたはすでに送信されたメッセージに対して変更が加えられた場合は、saveChanges
メソッドを明示的に呼び出して変更を保存する必要があります。saveChanges
メソッドは、リードバックできるすべての変更 (たとえば、メッセージ ID をサポートするプロファイル内の MessageId) も生成します。送信目的で作成されるメッセージ内のすべての MIME ヘッダーは、saveChanges
が呼び出されたあとでのみ有効な値を持つことが保証されます。
さらに、このメソッドは、構成するすべての AttachmentPart
オブジェクトからのデータがメッセージに入れられたポイントにマークを設定します。
SOAPException
- このメッセージへの変更を保存するときに問題が発生した場合。SOAPException
public 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, 2013, Oracle and/or its affiliates. All rights reserved.