モジュール java.xml.ws
パッケージ 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

        public 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_PROTOCOLDEFAULT_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
        デフォルトのSOAPPartSOAPEnvelopeSOAPBody、および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 - MessageFactoryheadersパラメータに必要な1つ以上のMIMEヘッダーが存在しない場合。 この理由から、SOAP_1_1_PROTOCOLまたはSOAP_1_2_PROTOCOLMessageFactory実装では、IllegalArgumentExceptionをスローしてはいけない。