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, 2014, Oracle and/or its affiliates. All rights reserved.