パッケージ jakarta.xml.soap

クラス AttachmentPart


  • public abstract class AttachmentPart
    extends ObjectSE
    SOAPMessage オブジェクトへの単一のアタッチメント。SOAPMessage オブジェクトには、0 個、1 個、多数の AttachmentPart オブジェクトが含まれる場合があります。各 AttachmentPart オブジェクトは、アプリケーション固有のコンテンツと関連する MIME ヘッダーの 2 つの部分で構成されています。MIME ヘッダーは、コンテンツの識別と説明に使用できる名前と値のペアで構成されています。

    AttachmentPart オブジェクトは、特定の標準に準拠している必要があります。

    1. MIME [RFC2045] 標準に準拠している必要があります
    2. コンテンツが含まれている必要があります
    3. ヘッダー部分には、次のヘッダーを含める必要があります。
      • Content-Type
        このヘッダーは、AttachmentPart オブジェクトのコンテンツ内のデータの型を識別し、[RFC2045] に準拠する必要があります。以下は、Content-Type ヘッダーの例です。
               Content-Type:  application/xml
               
        ap が AttachmentPart オブジェクトである次のコード行は、前の例に示したヘッダーを設定します。
               ap.setMimeHeader("Content-Type", "application/xml");
               

    AttachmentPart オブジェクトのコンテンツ部分に制限はありません。コンテンツは、単純なプレーンテキストオブジェクトから複雑な XML ドキュメントまたはイメージファイルまで何でもかまいません。

    AttachmentPart オブジェクトは、メソッド SOAPMessage.createAttachmentPart を使用して作成されます。MIME ヘッダーを設定した後、AttachmentPart オブジェクトは、メソッド SOAPMessage.addAttachmentPart を使用して作成したメッセージに追加されます。

    次のコードフラグメントは、m が SOAPMessage オブジェクトであり、contentStringl が String であり、AttachmentPart のインスタンスを作成し、いくつかのコンテンツとヘッダー情報を含む AttachmentPart オブジェクトを設定し、AttachmentPart オブジェクトを SOAPMessage オブジェクトに追加します。

         AttachmentPart ap1 = m.createAttachmentPart();
         ap1.setContent(contentString1, "text/plain");
         m.addAttachmentPart(ap1);
     

    次のコードフラグメントは、2 番目の AttachmentPart インスタンスを作成し、同じメッセージに追加します。jpegData は、jpeg ファイルを表すバイナリバイトバッファです。

         AttachmentPart ap2 = m.createAttachmentPart();
         byte[] jpegData =  ...;
         ap2.setContent(new ByteArrayInputStream(jpegData), "image/jpeg");
         m.addAttachmentPart(ap2);
     

    getContent メソッドは、AttachmentPart オブジェクトからコンテンツとヘッダーを取得します。存在する DataContentHandler オブジェクトに応じて、返される Object は、MIME 型に対応する型付き Java オブジェクト、またはコンテンツをバイトとして含む InputStream オブジェクトのいずれかになります。

         String content1 = ap1.getContent();
         java.io.InputStream content2 = ap2.getContent();
     
    メソッド clearContent は、AttachmentPart オブジェクトからすべてのコンテンツを削除しますが、そのヘッダー情報には影響しません。
         ap1.clearContent();
     
    導入:
    1.6
    • コンストラクターのサマリー

      コンストラクター  
      修飾子 コンストラクター 説明
      protected AttachmentPart()
      デフォルトコンストラクター。
    • メソッドのサマリー

      すべてのメソッド   インスタンスメソッド   抽象メソッド   具象メソッド  
      修飾子と型 メソッド 説明
      abstract voidaddMimeHeader​(StringSE name, StringSE value)
      指定された名前と値の MIME ヘッダーをこの AttachmentPart オブジェクトに追加します。
      abstract voidclearContent()
      この AttachmentPart オブジェクトのコンテンツをクリアします。
      abstract IteratorSE<MimeHeader>getAllMimeHeaders()
      この AttachmentPart オブジェクトのすべてのヘッダーを、MimeHeader オブジェクトのイテレーターとして取得します。
      abstract InputStreamSEgetBase64Content()
      AttachmentPart のコンテンツを Base64 でエンコードされた文字データとして取得するために使用できる InputStream を返します。このメソッドは、添付ファイルの生のバイトを base64 でエンコードして返します。
      abstract ObjectSEgetContent()
      この AttachmentPart オブジェクトの内容を Java オブジェクトとして取得します。
      StringSEgetContentId()
      名前が "Content-ID" である MIME ヘッダーの値を取得します。
      StringSEgetContentLocation()
      名前が "Content-Location" である MIME ヘッダーの値を取得します。
      StringSEgetContentType()
      名前が "Content-Type" である MIME ヘッダーの値を取得します。
      abstract DataHandlergetDataHandler()
      この AttachmentPart オブジェクトの DataHandler オブジェクトを取得します。
      abstract IteratorSE<MimeHeader>getMatchingMimeHeaders​(StringSE[] names)
      指定された配列の名前に一致するすべての MimeHeader オブジェクトを取得します。
      abstract StringSE[]getMimeHeader​(StringSE name)
      指定された String によって識別されるヘッダーのすべての値を取得します。
      abstract IteratorSE<MimeHeader>getNonMatchingMimeHeaders​(StringSE[] names)
      指定された配列の名前と名前が一致しないすべての MimeHeader オブジェクトを取得します。
      abstract InputStreamSEgetRawContent()
      この AttachmentPart オブジェクトのコンテンツを InputStream として取得します。あたかも getContent が呼び出され、この AttachmentPart の content-type に DataContentHandler が登録されていないかのようにします。
      abstract byte[]getRawContentBytes()
      この AttachmentPart オブジェクトの内容を、getContent が呼び出され、この AttachmentPart の content-type に DataContentHandler が登録されていないかのように、byte[] 配列として取得します。
      abstract intgetSize()
      この AttachmentPart オブジェクトのバイト数を返します。
      abstract voidremoveAllMimeHeaders()
      すべての MIME ヘッダーエントリを削除します。
      abstract voidremoveMimeHeader​(StringSE header)
      指定された名前に一致するすべての MIME ヘッダーを削除します。
      abstract voidsetBase64Content​(InputStreamSE content, StringSE contentType)
      Base64 ソース InputStream からこの添付ファイルパーツのコンテンツを設定し、Content-Type ヘッダーの値を contentType に含まれる値に設定します。このメソッドは、最初に base64 入力をデコードし、結果の生バイトを添付ファイルに書き込みます。
      abstract voidsetContent​(ObjectSE object, StringSE contentType)
      このアタッチメントパーツのコンテンツを指定された Object のコンテンツに設定し、Content-Type ヘッダーの値を指定された型に設定します。
      voidsetContentId​(StringSE contentId)
      名前が "Content-ID" である MIME ヘッダーを指定された値で設定します。
      voidsetContentLocation​(StringSE contentLocation)
      名前が "Content-Location" である MIME ヘッダーを指定された値で設定します。
      voidsetContentType​(StringSE contentType)
      名前が "Content-Type" である MIME ヘッダーを指定された値で設定します。
      abstract voidsetDataHandler​(DataHandler dataHandler)
      指定された DataHandler オブジェクトをこの AttachmentPart オブジェクトのデータハンドラーとして設定します。
      abstract voidsetMimeHeader​(StringSE name, StringSE value)
      指定された名前に一致する最初のヘッダーエントリを指定された値に変更し、既存のヘッダーが一致しない場合は新しいヘッダーを追加します。
      abstract voidsetRawContent​(InputStreamSE content, StringSE contentType)
      この添付部分の内容を InputStream content に含まれるものに設定し、Content-Type ヘッダーの値を contentType に含まれる値に設定します。
      abstract voidsetRawContentBytes​(byte[] content, int offset, int len, StringSE contentType)
      この添付部分の内容を byte[] 配列 content に含まれるものに設定し、Content-Type ヘッダーの値を contentType に含まれる値に設定します。
    • コンストラクターの詳細

      • AttachmentPart

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

      • getSize

        public abstract int getSize()
                             throws SOAPException
        この AttachmentPart オブジェクトのバイト数を返します。
        戻り値:
        この AttachmentPart オブジェクトのサイズ(バイト単位)またはサイズを判別できない場合は -1
        例外:
        SOAPException - この添付ファイルのコンテンツが破損している場合、またはサイズを決定しようとしたときに例外が発生した場合。
      • clearContent

        public abstract void clearContent()
        この AttachmentPart オブジェクトのコンテンツをクリアします。MIME ヘッダー部分は変更されません。
      • getContent

        public abstract ObjectSE getContent()
                                   throws SOAPException
        この AttachmentPart オブジェクトのコンテンツを Java オブジェクトとして取得します。返される Java オブジェクトの型は、(1) バイトの解釈に使用される DataContentHandler オブジェクト、および (2) ヘッダーで指定された Content-Type によって異なります。

        MIME コンテンツ型 "text/plain","text/html"、および "text/xml" の場合、DataContentHandler オブジェクトは、MIME 型に対応する Java 型との間の変換を実行します。他の MIME 型の場合、DataContentHandler オブジェクトは、コンテンツデータを生のバイトとして含む InputStream オブジェクトを返すことができます。

        SAAJ 準拠の実装は、少なくとも、Content-Type 値が text/plain のコンテンツストリームに対応する java.lang.String オブジェクト、Content-Type 値が text/xml のコンテンツストリームに対応する javax.xml.transform.stream.StreamSource オブジェクト、コンテンツストリームに対応する java.awt.Image オブジェクトを返す必要があります。Content-Type 値が image/gif または image/jpeg の場合。インストールされた DataContentHandler オブジェクトが理解できないコンテンツ型の場合、DataContentHandler オブジェクトは、raw バイトを含む java.io.InputStream オブジェクトを返す必要があります。

        戻り値:
        この AttachmentPart オブジェクトのコンテンツを含む Java オブジェクト
        例外:
        SOAPException - この AttachmentPart オブジェクトにコンテンツが設定されていない場合、またはデータ変換エラーが発生した場合
      • getRawContent

        public abstract InputStreamSE getRawContent()
                                           throws SOAPException
        この AttachmentPart オブジェクトのコンテンツを InputStream として取得します。あたかも getContent が呼び出され、この AttachmentPart の content-type に DataContentHandler が登録されていないかのようにします。

        返された InputStream から読み取ると、ストリーム内のデータが消費されることに注意してください。後続の API を呼び出す前に、InputStream を適切にリセットするのは呼び出し側の責任です。未加工の添付コンテンツのコピーが必要な場合は、代わりに getRawContentBytes() API を使用する必要があります。

        戻り値:
        AttachmentPart に含まれる生データにアクセスできる InputStream
        例外:
        SOAPException - この AttachmentPart オブジェクトにコンテンツが設定されていない場合、またはデータ変換エラーが発生した場合。
        導入:
        1.6、SAAJ 1.3
        関連事項:
        getRawContentBytes()
      • getRawContentBytes

        public abstract byte[] getRawContentBytes()
                                           throws SOAPException
        この AttachmentPart オブジェクトの内容を、getContent が呼び出され、この AttachmentPart の content-type に DataContentHandler が登録されていないかのように、byte[] 配列として取得します。
        戻り値:
        AttachmentPart の生データを含む byte[] 配列。
        例外:
        SOAPException - この AttachmentPart オブジェクトにコンテンツが設定されていない場合、またはデータ変換エラーが発生した場合。
        導入:
        1.6、SAAJ 1.3
      • getBase64Content

        public abstract InputStreamSE getBase64Content()
                                              throws SOAPException
        AttachmentPart のコンテンツを Base64 でエンコードされた文字データとして取得するために使用できる InputStream を返します。このメソッドは、添付ファイルの生のバイトを base64 でエンコードして返します。
        戻り値:
        Base64 でエンコードされた AttachmentPart を読み取ることができる InputStream
        例外:
        SOAPException - この AttachmentPart オブジェクトにコンテンツが設定されていない場合、またはデータ変換エラーが発生した場合。
        導入:
        1.6、SAAJ 1.3
      • setContent

        public abstract void setContent​(ObjectSE object,
                                        StringSE contentType)
        このアタッチメントパーツのコンテンツを指定された Object のコンテンツに設定し、Content-Type ヘッダーの値を指定された型に設定します。Object の型は、Content-Type に指定された値に対応している必要があります。これは、使用中の DataContentHandler オブジェクトの特定のセットによって異なります。
        パラメーター:
        object - この添付ファイル部分のコンテンツを構成する Java オブジェクト
        contentType - コンテンツの型を指定する MIME 文字列
        例外:
        IllegalArgumentExceptionSE - contentType がコンテンツオブジェクトの型と一致しない場合、またはこのコンテンツオブジェクトに DataContentHandler オブジェクトがない場合にスローされる可能性があります。
        関連事項:
        getContent()
      • setRawContent

        public abstract void setRawContent​(InputStreamSE content,
                                           StringSE contentType)
                                    throws SOAPException
        この添付部分の内容を InputStream content に含まれるものに設定し、Content-Type ヘッダーの値を contentType に含まれる値に設定します。

        その後の getSize() の呼び出しは、コンテンツサイズの正確な測定値ではない場合があります。

        パラメーター:
        content - アタッチメントパーツに追加する生データ
        contentType - Content-Type ヘッダーに設定する値
        例外:
        SOAPException - コンテンツの設定にエラーがある場合
        NullPointerExceptionSE - content が null の場合
        導入:
        1.6、SAAJ 1.3
      • setRawContentBytes

        public abstract void setRawContentBytes​(byte[] content,
                                                int offset,
                                                int len,
                                                StringSE contentType)
                                         throws SOAPException
        この添付部分の内容を byte[] 配列 content に含まれるものに設定し、Content-Type ヘッダーの値を contentType に含まれる値に設定します。
        パラメーター:
        content - アタッチメントパーツに追加する生データ
        contentType - Content-Type ヘッダーに設定する値
        offset - コンテンツのバイト配列のオフセット
        len - コンテンツを形成するバイト数
        例外:
        SOAPException - コンテンツの設定にエラーがある場合、またはコンテンツが null の場合
        導入:
        1.6、SAAJ 1.3
      • setBase64Content

        public abstract void setBase64Content​(InputStreamSE content,
                                              StringSE contentType)
                                       throws SOAPException
        Base64 ソース InputStream からこの添付ファイルパーツのコンテンツを設定し、Content-Type ヘッダーの値を contentType に含まれる値に設定します。このメソッドは、最初に base64 入力をデコードし、結果の生バイトを添付ファイルに書き込みます。

        その後の getSize() の呼び出しは、コンテンツサイズの正確な測定値ではない場合があります。

        パラメーター:
        content - 添付ファイル部分に追加する base64 でエンコードされたデータ
        contentType - Content-Type ヘッダーに設定する値
        例外:
        SOAPException - コンテンツの設定にエラーがある場合
        NullPointerExceptionSE - content が null の場合
        導入:
        1.6、SAAJ 1.3
      • getDataHandler

        public abstract DataHandler getDataHandler()
                                            throws SOAPException
        この AttachmentPart オブジェクトの DataHandler オブジェクトを取得します。
        戻り値:
        この AttachmentPart オブジェクトに関連付けられている DataHandler オブジェクト
        例外:
        SOAPException - この AttachmentPart オブジェクトにデータがない場合
      • setDataHandler

        public abstract void setDataHandler​(DataHandler dataHandler)
        指定された DataHandler オブジェクトをこの AttachmentPart オブジェクトのデータハンドラーとして設定します。通常、受信メッセージでは、データハンドラーが自動的に設定されます。メッセージが作成され、コンテンツが入力されている場合、setDataHandler メソッドを使用して、さまざまなデータソースからメッセージにデータを取り込むことができます。
        パラメーター:
        dataHandler - 設定する DataHandler オブジェクト
        例外:
        IllegalArgumentExceptionSE - 指定された DataHandler オブジェクトに問題があった場合
      • getContentId

        public StringSE getContentId()
        名前が "Content-ID" である MIME ヘッダーの値を取得します。
        戻り値:
        "Content-ID" ヘッダーの値を示す String、または存在しない場合は null 
        関連事項:
        setContentId(java.lang.String)
      • getContentLocation

        public StringSE getContentLocation()
        名前が "Content-Location" である MIME ヘッダーの値を取得します。
        戻り値:
        "Content-Location" ヘッダーの値を示す String、または存在しない場合は null 
      • getContentType

        public StringSE getContentType()
        名前が "Content-Type" である MIME ヘッダーの値を取得します。
        戻り値:
        "Content-Type" ヘッダーの値を示す String、または存在しない場合は null 
      • setContentId

        public void setContentId​(StringSE contentId)
        名前が "Content-ID" である MIME ヘッダーを指定された値で設定します。
        パラメーター:
        contentId - "Content-ID" ヘッダーの値を提供する String 
        例外:
        IllegalArgumentExceptionSE - 指定された contentId 値に問題があった場合
        関連事項:
        getContentId()
      • setContentLocation

        public void setContentLocation​(StringSE contentLocation)
        名前が "Content-Location" である MIME ヘッダーを指定された値で設定します。
        パラメーター:
        contentLocation - "Content-Location" ヘッダーの値を提供する String 
        例外:
        IllegalArgumentExceptionSE - 指定されたコンテンツの場所に問題があった場合
      • setContentType

        public void setContentType​(StringSE contentType)
        名前が "Content-Type" である MIME ヘッダーを指定された値で設定します。
        パラメーター:
        contentType - "Content-Type" ヘッダーの値を与える String 
        例外:
        IllegalArgumentExceptionSE - 指定されたコンテンツ型に問題があった場合
      • removeMimeHeader

        public abstract void removeMimeHeader​(StringSE header)
        指定された名前に一致するすべての MIME ヘッダーを削除します。
        パラメーター:
        header - 削除する MIME ヘッダーの文字列名
      • removeAllMimeHeaders

        public abstract void removeAllMimeHeaders()
        すべての MIME ヘッダーエントリを削除します。
      • getMimeHeader

        public abstract StringSE[] getMimeHeader​(StringSE name)
        指定された String によって識別されるヘッダーのすべての値を取得します。
        パラメーター:
        name - ヘッダーの名前。例: 「コンテンツ型」
        戻り値:
        指定されたヘッダーの値を与える String 配列
        関連事項:
        setMimeHeader(java.lang.String, java.lang.String)
      • setMimeHeader

        public abstract void setMimeHeader​(StringSE name,
                                           StringSE value)
        指定された名前に一致する最初のヘッダーエントリを指定された値に変更し、既存のヘッダーが一致しない場合は新しいヘッダーを追加します。このメソッドは、最初のヘッダーを除くすべての一致するヘッダーも削除します。

        RFC822 ヘッダーには、US-ASCII 文字のみを含めることができることに注意してください。

        パラメーター:
        name - 検索するヘッダーの名前を示す String 
        value - 名前が指定された名前と一致するヘッダーに設定される値を与える String 
        例外:
        IllegalArgumentExceptionSE - 指定された mime ヘッダーの名前または値に問題があった場合
      • addMimeHeader

        public abstract void addMimeHeader​(StringSE name,
                                           StringSE value)
        指定された名前と値の MIME ヘッダーをこの AttachmentPart オブジェクトに追加します。

        RFC822 ヘッダーには、US-ASCII 文字のみを含めることができることに注意してください。

        パラメーター:
        name - 追加するヘッダーの名前を示す String 
        value - 追加するヘッダーの値を示す String 
        例外:
        IllegalArgumentExceptionSE - 指定された mime ヘッダーの名前または値に問題があった場合
      • getAllMimeHeaders

        public abstract IteratorSE<MimeHeader> getAllMimeHeaders()
        この AttachmentPart オブジェクトのすべてのヘッダーを、MimeHeader オブジェクトのイテレーターとして取得します。
        戻り値:
        この AttachmentPart オブジェクトのすべての Mime ヘッダーを含む Iterator オブジェクト
      • getMatchingMimeHeaders

        public abstract IteratorSE<MimeHeader> getMatchingMimeHeaders​(StringSE[] names)
        指定された配列の名前に一致するすべての MimeHeader オブジェクトを取得します。
        パラメーター:
        names - 返される MIME ヘッダーの名前を持つ String 配列
        戻り値:
        指定された配列内の名前の 1 つに Iterator オブジェクトとして一致するすべての MIME ヘッダー
      • getNonMatchingMimeHeaders

        public abstract IteratorSE<MimeHeader> getNonMatchingMimeHeaders​(StringSE[] names)
        指定された配列の名前と名前が一致しないすべての MimeHeader オブジェクトを取得します。
        パラメーター:
        names - 返されない MIME ヘッダーの名前を持つ String 配列
        戻り値:
        指定された配列内の名前のいずれかに一致するものを除く、この AttachmentPart オブジェクト内のすべての MIME ヘッダー。一致しない MIME ヘッダーは、Iterator オブジェクトとして返されます。