- java.lang.Object
-
- javax.xml.soap.MessageFactory
-
public abstract class MessageFactory extends Object
SOAPMessage
オブジェクトを作成するためのファクトリです。SAAJクライアントは、
newInstance
メソッドを使用してMessageFactory
オブジェクトを作成できます。このコードの例を次に示します。MessageFactory mf = MessageFactory.newInstance(); MessageFactory mf12 = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);
その作成方法に関係なく、すべての
MessageFactory
オブジェクトは、デフォルトで次の要素を持つSOAPMessage
オブジェクトを生成します。SOAPPart
オブジェクトSOAPEnvelope
オブジェクトSOAPBody
オブジェクトSOAPHeader
オブジェクト
SOAPHeader
オブジェクトやSOAPBody
オブジェクトに、追加のエントリであらかじめ作成されたメッセージを生成する特殊なMessageFactoryオブジェクトが含まれていることがあります。 新しいSOAPMessage
オブジェクトのコンテンツは、作成時に次の2つのMessageFactory
メソッドのうちどちらが使用されるかによって異なります。createMessage()
クライアントが通常の要求メッセージの作成に使用するメソッド。createMessage(MimeHeaders, java.io.InputStream)
--InputStream
オブジェクトのコンテンツとMimeHeaders
オブジェクトのヘッダーを持つメッセージ
このメソッドを使用すると、内部的に、サービス実装で要求の応答メッセージを作成できます。
- 導入されたバージョン:
- 1.6
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 MessageFactory()
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 abstract SOAPMessage
createMessage()
デフォルトのSOAPPart
、SOAPEnvelope
、SOAPBody
、およびSOAPHeader
オブジェクトを使用して、SOAPMessage
オブジェクトを新しく作成します。abstract SOAPMessage
createMessage(MimeHeaders headers, InputStream in)
指定されたInputStream
オブジェクトの内容を新しいSOAPMessage
オブジェクトに内部化し、そのSOAPMessage
オブジェクトを返します。static MessageFactory
newInstance()
デフォルトの実装(SOAP 1.1)のインスタンスである新しいMessageFactory
オブジェクトを作成します。static MessageFactory
newInstance(String protocol)
指定された実装のインスタンスである、新しいMessageFactory
オブジェクトを作成します。
-
-
-
メソッドの詳細
-
newInstance
public static MessageFactory newInstance() throws SOAPException
デフォルトの実装(SOAP 1.1)のインスタンスである新しいMessageFactory
オブジェクトを作成します。 このメソッドは、javax.xml.soap
で指定された参照プロシージャを使用して、MessageFactory
クラスを検索してロードします。- 戻り値:
MessageFactory
の新しいインスタンス- 例外:
SOAPException
-MessageFactory
のデフォルト実装の作成でエラーが発生した場合。- 関連項目:
SAAJMetaFactory
-
newInstance
public static MessageFactory newInstance(String protocol) throws SOAPException
指定された実装のインスタンスである、新しいMessageFactory
オブジェクトを作成します。 (動的なメッセージ・ファクトリ、SOAP 1.1メッセージ・ファクトリ、またはSOAP 1.2メッセージ・ファクトリ)。 動的なメッセージ・ファクトリは、createMessage
メソッドの引数として指定されたMIMEヘッダーに基づいてメッセージを作成します。 このメソッドはSAAJMetaFactoryを使用して実装クラスを検索し、MessageFactoryのインスタンスを作成します。- パラメータ:
protocol
- 指定のメッセージ・ファクトリ実装のクラスを表す文字列定数。DYNAMIC_SOAP_PROTOCOL
、DEFAULT_SOAP_PROTOCOL
(SOAP_1_1_PROTOCOL
と同じ)、またはSOAP_1_2_PROTOCOL
のいずれかを指定できます。- 戻り値:
MessageFactory
の新しいインスタンス- 例外:
SOAPException
- 指定のMessageFactory
の実装の作成でエラーが発生した場合。- 導入されたバージョン:
- 1.6, SAAJ 1.3
- 関連項目:
SAAJMetaFactory
-
createMessage
public abstract SOAPMessage createMessage() throws SOAPException
デフォルトのSOAPPart
、SOAPEnvelope
、SOAPBody
、およびSOAPHeader
オブジェクトを使用して、SOAPMessage
オブジェクトを新しく作成します。 プロファイル固有のメッセージ・ファクトリは、プロファイル固有のヘッダーを持つSOAPMessage
オブジェクトをあらかじめ作成することを選択できます。このメッセージの
SOAPPart
オブジェクトにはコンテンツを追加できます。SOAP部分のみを含むメッセージで十分な場合、メッセージは「そのままの状態で」送信できます。 それでは十分でない場合、SOAPMessage
オブジェクトは1つ以上のAttachmentPart
オブジェクトを作成し、それらを自身に追加する必要があります。 XML形式でないコンテンツはAttachmentPart
オブジェクト内にある必要があります。- 戻り値:
- 新しい
SOAPMessage
オブジェクト - 例外:
SOAPException
- SOAPエラーが発生した場合UnsupportedOperationException
- このMessageFactory
インスタンスのプロトコルがDYNAMIC_SOAP_PROTOCOL
の場合
-
createMessage
public abstract SOAPMessage createMessage(MimeHeaders headers, InputStream in) throws IOException, SOAPException
指定されたInputStream
オブジェクトの内容を新しいSOAPMessage
オブジェクトに内部化し、そのSOAPMessage
オブジェクトを返します。- パラメータ:
in
- メッセージのデータを含むInputStream
オブジェクトheaders
- メッセージ作成時にトランスポートに依存しない形式でメッセージに渡されるトランスポート固有のヘッダー- 戻り値:
- 指定の
InputStream
オブジェクトのデータを含む新しいSOAPMessage
オブジェクト - 例外:
IOException
- 入力ストリームからのデータの読込みに問題が発生した場合SOAPException
- メッセージが無効の場合、スローされるIllegalArgumentException
-MessageFactory
のheaders
パラメータに必要な1つ以上のMIMEヘッダーが存在しない場合。 この理由から、SOAP_1_1_PROTOCOL
またはSOAP_1_2_PROTOCOL
のMessageFactory
実装では、IllegalArgumentException
をスローしてはいけない。
-
-