JavaTM Platform
Standard Ed. 6

javax.xml.soap
クラス SOAPMessage

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 オブジェクトは次のものが含まれます。

メッセージの SOAP 部は、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 オブジェクトを指定した出力ストリームに書き込みます。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

CHARACTER_SET_ENCODING

public static final String CHARACTER_SET_ENCODING
SOAP メッセージの文字タイプエンコーディングを指定します。有効な値には、"utf-8" および "utf-16" が含まれます。さらにサポートされる値については、ベンダーからのマニュアルを参照してください。デフォルトは "utf-8" です。

導入されたバージョン:
SAAJ 1.2
関連項目:
SOAPMessage.setProperty, 定数フィールド値

WRITE_XML_DECLARATION

public static final String WRITE_XML_DECLARATION
送信時、SOAP メッセージに XML 宣言を含めるかどうかを指定します。有効な値は、"true" と "false" のみです。デフォルトは "false" です。

導入されたバージョン:
SAAJ 1.2
関連項目:
SOAPMessage.setProperty, 定数フィールド値
コンストラクタの詳細

SOAPMessage

public SOAPMessage()
メソッドの詳細

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 が存在しないか、取得できない場合
導入されたバージョン:
SAAJ 1.2

getSOAPHeader

public SOAPHeader getSOAPHeader()
                         throws SOAPException
この SOAPMessage オブジェクトに含まれる SOAP Header を取得します。  

戻り値:
この SOAPMessage オブジェクトの SOAPHeader オブジェクト
例外:
SOAPException - SOAP Header が存在しないか、取得できない場合
導入されたバージョン:
SAAJ 1.2

removeAllAttachments

public abstract void removeAllAttachments()
この SOAPMessage オブジェクトに追加された AttachmentPart オブジェクトをすべて削除します。  

このメソッドは、SOAP 部には影響を与えません。


countAttachments

public abstract int countAttachments()
このメッセージの添付の数を取得します。このカウントには、SOAP 部は含まれません。

戻り値:
この SOAPMessage オブジェクトの一部である AttachmentPart オブジェクトの数

getAttachments

public abstract Iterator getAttachments()
この SOAPMessage オブジェクトの一部である AttachmentPart オブジェクトをすべて取得します。

戻り値:
このメッセージの添付すべてについての反復子

getAttachments

public abstract Iterator getAttachments(MimeHeaders headers)
指定したヘッダーと一致するヘッダーエントリのある AttachmentPart オブジェクトをすべて取得します。返される添付には、指定したもの以外のヘッダーも含まれます。

パラメータ:
headers - 検索する MIME ヘッダーを含む MimeHeaders オブジェクト
戻り値:
指定したヘッダーの 1 つに一致するヘッダーを含む 添付すべてについての反復子

removeAttachments

public abstract void removeAttachments(MimeHeaders headers)
指定したヘッダーと一致するヘッダーエントリのある AttachmentPart オブジェクトをすべて削除します。削除される添付には、指定したもの以外のヘッダーも含まれます。

パラメータ:
headers - 検索する MIME ヘッダーを含む MimeHeaders オブジェクト
導入されたバージョン:
SAAJ 1.3

getAttachment

public abstract AttachmentPart getAttachment(SOAPElement element)
                                      throws SOAPException
この SOAPElement が参照する添付と関連付けられた AttachmentPart オブジェクト、またはそのような添付が存在しない場合は null を返します。参照は、SOAP Messages with Attachments で説明されている href 属性またはスキーマ型 ref:swaRef(ref:swaRef) の要素用に「WS-I Attachments Profile 1.0」で説明されている URI を含む、単一の Text 子ノードを介して行えます。これら 2 つの機構をサポートする必要があります。href 属性を使用した参照のサポートとは、xop:Include 要素 ( XOP) である要素に対して、このメソッドがサポートされる必要があるという意味でもあります。その他の参照機構は、この標準の個々の実装によってサポートされます。詳細は、ベンダーにご連絡ください。

パラメータ:
element - Attachment への参照を含む SOAPElement
戻り値:
参照された AttachmentPart または そのような AttachmentPart が存在しないまたはこの SOAPElement 内に参照が見つからない場合は null
例外:
SOAPException - 添付にアクセスしようとしたときにエラーが発生した 場合
導入されたバージョン:
SAAJ 1.3

addAttachmentPart

public abstract void addAttachmentPart(AttachmentPart AttachmentPart)
指定した AttachmentPart オブジェクトをこの SOAPMessage オブジェクトに追加します。AttachmentPart オブジェクトは、メッセージに追加する前に作成する必要があります。

パラメータ:
AttachmentPart - この SOAPMessage オブジェクトの部分となる AttachmentPart オブジェクト
例外:
IllegalArgumentException

createAttachmentPart

public abstract AttachmentPart createAttachmentPart()
新しい空の AttachmentPart オブジェクトを作成します。addAttachmentPart メソッドは、新しい AttachmentPartSOAPMessage オブジェクトの添付にするために、 新しい 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 - このメッセージへの変更を保存時に 問題があった場合
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 - プロパティー名が認識されない場合
導入されたバージョン:
SAAJ 1.2

getProperty

public Object getProperty(String property)
                   throws SOAPException
指定されたプロパティーの値を取得します。

パラメータ:
property - 取得するプロパティーの名前
戻り値:
名前付きのプロパティーに関連付けられた値、またはそのような プロパティーがない場合は null
例外:
SOAPException - プロパティー名が認識されない場合
導入されたバージョン:
SAAJ 1.2

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。