パッケージ jakarta.xml.soap

クラス MessageFactory


  • public abstract class MessageFactory
    extends ObjectSE
    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

        protected MessageFactory()
        デフォルトコンストラクター。
    • メソッドの詳細

      • newInstance

        public static MessageFactory newInstance()
                                          throws SOAPException
        デフォルト実装(SOAP 1.1)のインスタンスである新しい MessageFactory オブジェクトを作成します。このメソッドは、jakarta.xml.soap で指定されたルックアップ手順を使用して、MessageFactory クラスを見つけてロードします。
        戻り値:
        MessageFactory の新しいインスタンス
        例外:
        SOAPException - MessageFactory のデフォルト実装の作成中にエラーが発生した場合。
        関連事項:
        SAAJMetaFactory
      • newInstance

        public static MessageFactory newInstance​(StringSE protocol)
                                          throws SOAPException
        指定された実装のインスタンスである新しい MessageFactory オブジェクトを作成します。動的メッセージファクトリ、SOAP 1.1 メッセージファクトリ、または SOAP 1.2 メッセージファクトリの場合があります。動的メッセージファクトリは、createMessage メソッドへの引数として指定された MIME ヘッダーに基づいてメッセージを作成します。このメソッドは、SAAJMetaFactory を使用して実装クラスを見つけ、MessageFactory インスタンスを作成します。
        パラメーター:
        protocol - 指定されたメッセージファクトリ実装のクラスを表す文字列定数。DYNAMIC_SOAP_PROTOCOLDEFAULT_SOAP_PROTOCOL (と同じ) SOAP_1_1_PROTOCOLSOAP_1_2_PROTOCOL のいずれかです。
        戻り値:
        MessageFactory の新しいインスタンス
        例外:
        SOAPException - MessageFactory の指定された実装の作成中にエラーが発生した場合。
        導入:
        1.6、SAAJ 1.3
        関連事項:
        SAAJMetaFactory
      • createMessage

        public abstract SOAPMessage createMessage()
                                           throws SOAPException
        デフォルトの SOAPPartSOAPEnvelopeSOAPBodySOAPHeader オブジェクトを使用して新しい SOAPMessage オブジェクトを作成します。プロファイル固有のメッセージファクトリは、SOAPMessage オブジェクトにプロファイル固有のヘッダーを事前入力することを選択できます。

        このメッセージの SOAPPart オブジェクトにコンテンツを追加でき、SOAP 部分のみを含むメッセージで十分な場合は、メッセージを「そのまま」送信できます。それ以外の場合、SOAPMessage オブジェクトは 1 つ以上の AttachmentPart オブジェクトを作成し、それ自体に追加する必要があります。XML 形式でないコンテンツは、AttachmentPart オブジェクトに含まれている必要があります。

        戻り値:
        新しい SOAPMessage オブジェクト
        例外:
        SOAPException - SOAP エラーが発生した場合
        UnsupportedOperationExceptionSE - この MessageFactory インスタンスのプロトコルが DYNAMIC_SOAP_PROTOCOL の場合
      • createMessage

        public abstract SOAPMessage createMessage​(MimeHeaders headers,
                                                  InputStreamSE in)
                                           throws IOExceptionSE,
                                                  SOAPException
        指定された InputStream オブジェクトの内容を新しい SOAPMessage オブジェクトに内部化し、SOAPMessage オブジェクトを返します。
        パラメーター:
        in - メッセージのデータを含む InputStream オブジェクト
        headers - メッセージを作成するためにトランスポートに依存しない方法でメッセージに渡されるトランスポート固有のヘッダー
        戻り値:
        指定された InputStream オブジェクトからのデータを含む新しい SOAPMessage オブジェクト
        例外:
        IOExceptionSE - 入力ストリームからのデータの読み取りに問題がある場合
        SOAPException - メッセージが無効な場合にスローされる可能性があります
        IllegalArgumentExceptionSE - MessageFactory で headers パラメーターに 1 つ以上の MIME ヘッダーが存在する必要があり、それらが欠落している場合。SOAP_1_1_PROTOCOL または SOAP_1_2_PROTOCOL の MessageFactory 実装は、この理由で IllegalArgumentException をスローしてはなりません。