クラス AttachmentPart
- java.lang.ObjectSE
-
- jakarta.xml.soap.AttachmentPart
public abstract class AttachmentPart extends ObjectSE
SOAPMessage
オブジェクトへの単一のアタッチメント。SOAPMessage
オブジェクトには、0 個、1 個、多数のAttachmentPart
オブジェクトが含まれる場合があります。各AttachmentPart
オブジェクトは、アプリケーション固有のコンテンツと関連する MIME ヘッダーの 2 つの部分で構成されています。MIME ヘッダーは、コンテンツの識別と説明に使用できる名前と値のペアで構成されています。AttachmentPart
オブジェクトは、特定の標準に準拠している必要があります。- MIME [RFC2045] 標準に準拠している必要があります
- コンテンツが含まれている必要があります
- ヘッダー部分には、次のヘッダーを含める必要があります。
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 void
addMimeHeader(StringSE name, StringSE value)
指定された名前と値の MIME ヘッダーをこのAttachmentPart
オブジェクトに追加します。abstract void
clearContent()
このAttachmentPart
オブジェクトのコンテンツをクリアします。abstract IteratorSE<MimeHeader>
getAllMimeHeaders()
このAttachmentPart
オブジェクトのすべてのヘッダーを、MimeHeader
オブジェクトのイテレーターとして取得します。abstract InputStreamSE
getBase64Content()
AttachmentPart
のコンテンツを Base64 でエンコードされた文字データとして取得するために使用できるInputStream
を返します。このメソッドは、添付ファイルの生のバイトを base64 でエンコードして返します。abstract ObjectSE
getContent()
このAttachmentPart
オブジェクトの内容を Java オブジェクトとして取得します。StringSE
getContentId()
名前が "Content-ID" である MIME ヘッダーの値を取得します。StringSE
getContentLocation()
名前が "Content-Location" である MIME ヘッダーの値を取得します。StringSE
getContentType()
名前が "Content-Type" である MIME ヘッダーの値を取得します。abstract DataHandler
getDataHandler()
このAttachmentPart
オブジェクトのDataHandler
オブジェクトを取得します。abstract IteratorSE<MimeHeader>
getMatchingMimeHeaders(StringSE[] names)
指定された配列の名前に一致するすべてのMimeHeader
オブジェクトを取得します。abstract StringSE[]
getMimeHeader(StringSE name)
指定されたString
によって識別されるヘッダーのすべての値を取得します。abstract IteratorSE<MimeHeader>
getNonMatchingMimeHeaders(StringSE[] names)
指定された配列の名前と名前が一致しないすべてのMimeHeader
オブジェクトを取得します。abstract InputStreamSE
getRawContent()
このAttachmentPart
オブジェクトのコンテンツを InputStream として取得します。あたかもgetContent
が呼び出され、このAttachmentPart
のcontent-type
にDataContentHandler
が登録されていないかのようにします。abstract byte[]
getRawContentBytes()
このAttachmentPart
オブジェクトの内容を、getContent
が呼び出され、このAttachmentPart
のcontent-type
にDataContentHandler
が登録されていないかのように、byte[] 配列として取得します。abstract int
getSize()
このAttachmentPart
オブジェクトのバイト数を返します。abstract void
removeAllMimeHeaders()
すべての MIME ヘッダーエントリを削除します。abstract void
removeMimeHeader(StringSE header)
指定された名前に一致するすべての MIME ヘッダーを削除します。abstract void
setBase64Content(InputStreamSE content, StringSE contentType)
Base64 ソースInputStream
からこの添付ファイルパーツのコンテンツを設定し、Content-Type
ヘッダーの値をcontentType
に含まれる値に設定します。このメソッドは、最初に base64 入力をデコードし、結果の生バイトを添付ファイルに書き込みます。abstract void
setContent(ObjectSE object, StringSE contentType)
このアタッチメントパーツのコンテンツを指定されたObject
のコンテンツに設定し、Content-Type
ヘッダーの値を指定された型に設定します。void
setContentId(StringSE contentId)
名前が "Content-ID" である MIME ヘッダーを指定された値で設定します。void
setContentLocation(StringSE contentLocation)
名前が "Content-Location" である MIME ヘッダーを指定された値で設定します。void
setContentType(StringSE contentType)
名前が "Content-Type" である MIME ヘッダーを指定された値で設定します。abstract void
setDataHandler(DataHandler dataHandler)
指定されたDataHandler
オブジェクトをこのAttachmentPart
オブジェクトのデータハンドラーとして設定します。abstract void
setMimeHeader(StringSE name, StringSE value)
指定された名前に一致する最初のヘッダーエントリを指定された値に変更し、既存のヘッダーが一致しない場合は新しいヘッダーを追加します。abstract void
setRawContent(InputStreamSE content, StringSE contentType)
この添付部分の内容をInputStream
content
に含まれるものに設定し、Content-Type
ヘッダーの値をcontentType
に含まれる値に設定します。abstract void
setRawContentBytes(byte[] content, int offset, int len, StringSE contentType)
この添付部分の内容をbyte[]
配列content
に含まれるものに設定し、Content-Type
ヘッダーの値をcontentType
に含まれる値に設定します。
メソッドの詳細
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
オブジェクトとして返されます。