public abstract class AttachmentPart extends Object
SOAPMessage
オブジェクトへの個々の添付です。SOAPMessage
オブジェクトには 1 つ以上の AttachmentPart
オブジェクトを追加できます (追加しないことも可能)。各 AttachmentPart
オブジェクトは、アプリケーション固有のコンテンツとそれに関連する MIME ヘッダーの 2 つで構成されています。MIME ヘッダーは、コンテンツの識別と説明に使用する名前と値のペアで構成されています。
AttachmentPart
オブジェクトは次の規格と条件を満たしている必要があります。
Content-Type
AttachmentPart
オブジェクトのコンテンツのデータの型を指定。[RFC2045] に準拠する必要があります。Content-Type ヘッダーの例を次に示します。
Content-Type: application/xml次のコード (
ap
は AttachmentPart
オブジェクト) で上記の例のヘッダーを設定します。
ap.setMimeHeader("Content-Type", "application/xml");
AttachmentPart
オブジェクトのコンテンツに関しては制限がありません。単純なテキストオブジェクトから複雑な XML ドキュメントやイメージファイルまでコンテンツにできます。
AttachmentPart
オブジェクトは SOAPMessage.createAttachmentPart
メソッドで作成されます。MIME ヘッダーの設定後、SOAPMessage.addAttachmentPart
メソッドで作成された AttachmentPart
オブジェクトがメッセージに追加されます。
次のコードの抜粋 (m
は SOAPMessage
オブジェクト、contentStringl
は String
) は、AttachmentPart
のインスタンスの作成、コンテンツとヘッダー情報による AttachmentPart
オブジェクトの設定、SOAPMessage
オブジェクトへの AttachmentPart
オブジェクトの追加を実行する方法を示しています。
AttachmentPart ap1 = m.createAttachmentPart(); ap1.setContent(contentString1, "text/plain"); m.addAttachmentPart(ap1);
次のコードの抜粋は、2 番目の AttachmentPart
インスタンスを作成して同じメッセージに追加する方法を示しています。jpegData
は、JPEG ファイルを意味するバイナリの byte バッファーです。
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();
コンストラクタと説明 |
---|
AttachmentPart() |
修飾子と型 | メソッドと説明 |
---|---|
abstract void |
addMimeHeader(String name, String value)
指定の名前と値を持つ MIME ヘッダーをこの
AttachmentPart オブジェクトに追加します。 |
abstract void |
clearContent()
この
AttachmentPart オブジェクトのコンテンツをクリアします。 |
abstract Iterator |
getAllMimeHeaders()
この
AttachmentPart オブジェクトのすべてのヘッダーを MimeHeader オブジェクトのイテレータとして取得します。 |
abstract InputStream |
getBase64Content()
AttachmentPart のコンテンツを Base64 でエンコードされた文字データとして取得するために使用できる InputStream を返します。このメソッドを使用すると、添付の raw バイトが Base64 でエンコードされて返されます。 |
abstract Object |
getContent()
この
AttachmentPart オブジェクトのコンテンツを Java オブジェクトとして取得します。 |
String |
getContentId()
名前が "Content-ID" の MIME ヘッダーの値を取得します。
|
String |
getContentLocation()
名前が "Content-Location" の MIME ヘッダーの値を取得します。
|
String |
getContentType()
名前が "Content-Type" の MIME ヘッダーの値を取得します。
|
abstract DataHandler |
getDataHandler()
この
AttachmentPart オブジェクトの DataHandler オブジェクトを取得します。 |
abstract Iterator |
getMatchingMimeHeaders(String[] names)
指定した配列内の名前に一致するすべての
MimeHeader オブジェクトを取得します。 |
abstract String[] |
getMimeHeader(String name)
指定の
String で識別されたヘッダーの値をすべて取得します。 |
abstract Iterator |
getNonMatchingMimeHeaders(String[] names)
名前が指定した配列内の名前と一致しないすべての
MimeHeader オブジェクトを取得します。 |
abstract InputStream |
getRawContent()
getContent への呼び出しが実行されたうえで DataContentHandler がこの AttachmentPart の content-type に登録されなかったものと見なし、この AttachmentPart オブジェクトのコンテンツを InputStream として取得します。 |
abstract byte[] |
getRawContentBytes()
getContent への呼び出しが実行されたうえで DataContentHandler がこの AttachmentPart の content-type に登録されなかったものと見なし、この AttachmentPart オブジェクトのコンテンツを byte[] 配列として取得します。 |
abstract int |
getSize()
この
AttachmentPart オブジェクトのバイト数を返します。 |
abstract void |
removeAllMimeHeaders()
MIME ヘッダーのエントリをすべて削除します。
|
abstract void |
removeMimeHeader(String header)
指定した名前に一致する MIME ヘッダーをすべて削除します。
|
abstract void |
setBase64Content(InputStream content, String contentType)
Base64 のソース
InputStream からこの添付部分のコンテンツを設定し、Content-Type ヘッダーの値を contentType に含まれる値に設定します。このメソッドにより、Base64 の入力内容は最初にデコードされ、最終的に raw バイトが添付部分に書き込まれます。 |
abstract void |
setContent(Object object, String contentType)
この添付部分のコンテンツを指定の
Object のコンテンツに設定し、Content-Type ヘッダーの値を指定の型にします。 |
void |
setContentId(String contentId)
名前が "Content-ID" の MIME ヘッダーを指定の値で設定します。
|
void |
setContentLocation(String contentLocation)
名前が "Content-Location" の MIME ヘッダーを指定の値で設定します。
|
void |
setContentType(String contentType)
名前が "Content-Type" の MIME ヘッダーを指定の値で設定します。
|
abstract void |
setDataHandler(DataHandler dataHandler)
指定の
DataHandler オブジェクトを AttachmentPart オブジェクトのデータハンドラとして設定します。 |
abstract void |
setMimeHeader(String name, String value)
指定の名前に一致する、最初のヘッダーエントリを指定の値に変更します。既存のヘッダーで一致するものがない場合、新たにヘッダーを追加します。
|
abstract void |
setRawContent(InputStream content, String contentType)
この添付部分のコンテンツを
InputStream content に含まれるものとして設定し、Content-Type ヘッダーの値を contentType に含まれる値に設定します。 |
abstract void |
setRawContentBytes(byte[] content, int offset, int len, String contentType)
この添付部分のコンテンツを
byte[] content 配列に含まれるものとして設定し、Content-Type ヘッダーの値を contentType に含まれる値に設定します。 |
public abstract int getSize() throws SOAPException
AttachmentPart
オブジェクトのバイト数を返します。AttachmentPart
オブジェクトのサイズ (バイト数)、または -1 (サイズを決定できない場合)SOAPException
- この添付のコンテンツが破損している場合、またはサイズを判定中に例外が発生した場合。public abstract void clearContent()
AttachmentPart
オブジェクトのコンテンツをクリアします。MIME ヘッダー部分はそのまま残ります。public abstract Object getContent() throws SOAPException
AttachmentPart
オブジェクトのコンテンツを Java オブジェクトとして取得します。返される Java オブジェクトの型は、バイトの解釈に使用する (1) DataContentHandler
オブジェクトと、ヘッダーで指定されている (2) Content-Type
によって異なります。
MIME コンテンツタイプが "text/plain"、"text/html"、"text/xml" の場合、DataContentHandler
オブジェクトは MIME タイプに対応する Java 型との変換を実行します。ほかの MIME タイプの場合、DataContentHandler
オブジェクトは、raw バイトのコンテンツデータを含む InputStream
オブジェクトを返すことがあります。
SAAJ に準拠した実装では少なくとも、text/plain
の Content-Type
値を持つコンテンツストリームに対応した java.lang.String
オブジェクト、text/xml
の Content-Type
値を持つコンテンツストリームに対応した javax.xml.transform.stream.StreamSource
オブジェクト、image/gif
または image/jpeg
の Content-Type
値を持つコンテンツストリームに対応した java.awt.Image
オブジェクトを返す必要があります。インストールした DataContentHandler
オブジェクトが解釈できないコンテンツタイプの場合、DataContentHandler
オブジェクトは raw バイトで java.io.InputStream
オブジェクトを返す必要があります。
AttachmentPart
オブジェクトのコンテンツを持つ Java オブジェクトSOAPException
- この AttachmentPart
オブジェクトにコンテンツが設定されていない場合、またはデータ変換エラーが発生した場合public abstract InputStream getRawContent() throws SOAPException
getContent
への呼び出しが実行されたうえで DataContentHandler
がこの AttachmentPart
の content-type
に登録されなかったものと見なし、この AttachmentPart
オブジェクトのコンテンツを InputStream として取得します。
返された InputStream から読み込むと、ストリームのデータが消費されるので注意してください。呼び出し側は次の API を呼び出す前に、InputStream を適切にリセットする必要があります。raw の添付コンテンツのコピーが必要な場合、getRawContentBytes()
API を代わりに使用してください。
InputStream
。AttachmentPart
に含まれている raw データにこの InputStream からアクセスできる。SOAPException
- この AttachmentPart
オブジェクトにコンテンツが設定されていない場合、またはデータ変換エラーが発生した場合。getRawContentBytes()
public abstract byte[] getRawContentBytes() throws SOAPException
getContent
への呼び出しが実行されたうえで DataContentHandler
がこの AttachmentPart
の content-type
に登録されなかったものと見なし、この AttachmentPart
オブジェクトのコンテンツを byte[] 配列として取得します。AttachmentPart
の raw データを含む byte[]
配列。SOAPException
- この AttachmentPart
オブジェクトにコンテンツが設定されていない場合、またはデータ変換エラーが発生した場合。public abstract InputStream getBase64Content() throws SOAPException
AttachmentPart
のコンテンツを Base64 でエンコードされた文字データとして取得するために使用できる InputStream
を返します。このメソッドを使用すると、添付の raw バイトが Base64 でエンコードされて返されます。InputStream
。Base64 でエンコードされた AttachmentPart
をこの InputStream から読み込むことができる。SOAPException
- この AttachmentPart
オブジェクトにコンテンツが設定されていない場合、またはデータ変換エラーが発生した場合。public abstract void setContent(Object object, String contentType)
Object
のコンテンツに設定し、Content-Type
ヘッダーの値を指定の型にします。Object
の型は、Content-Type
で指定した値に対応する必要があります。これは、使用中の DataContentHandler
オブジェクトの特定のセットによって異なります。object
- この添付部分のコンテンツを構成する Java オブジェクトcontentType
- コンテンツタイプを指定する MIME 文字列IllegalArgumentException
- contentType がコンテンツオブジェクトのタイプと一致しない場合、またはこのコンテンツオブジェクトに DataContentHandler
オブジェクトがなかった場合に、スローされることがあるgetContent()
public abstract void setRawContent(InputStream content, String contentType) throws SOAPException
InputStream
content
に含まれるものとして設定し、Content-Type
ヘッダーの値を contentType
に含まれる値に設定します。
以降の getSize() の呼び出しは正確なコンテンツサイズでない場合があります。
content
- 添付部分に追加する raw データcontentType
- Content-Type
ヘッダーに設定する値SOAPException
- コンテンツの設定でエラーが発生した場合NullPointerException
- content
が null である場合public abstract void setRawContentBytes(byte[] content, int offset, int len, String contentType) throws SOAPException
byte[]
content
配列に含まれるものとして設定し、Content-Type
ヘッダーの値を contentType
に含まれる値に設定します。content
- 添付部分に追加する raw データcontentType
- Content-Type
ヘッダーに設定する値offset
- コンテンツのバイト配列内のオフセットlen
- コンテンツを形成するバイト数SOAPException
- コンテンツの設定でエラーが発生した場合、または content が null の場合public abstract void setBase64Content(InputStream content, String contentType) throws SOAPException
InputStream
からこの添付部分のコンテンツを設定し、Content-Type
ヘッダーの値を contentType
に含まれる値に設定します。このメソッドにより、Base64 の入力内容は最初にデコードされ、最終的に raw バイトが添付部分に書き込まれます。
以降の getSize() の呼び出しは正確なコンテンツサイズでない場合があります。
content
- 添付部分に追加する Base64 でエンコードされたデータcontentType
- Content-Type
ヘッダーに設定する値SOAPException
- コンテンツの設定でエラーが発生した場合NullPointerException
- content
が null である場合public abstract DataHandler getDataHandler() throws SOAPException
AttachmentPart
オブジェクトの DataHandler
オブジェクトを取得します。AttachmentPart
オブジェクトに関連付けられた DataHandler
オブジェクトSOAPException
- この AttachmentPart
オブジェクトにデータがない場合public abstract void setDataHandler(DataHandler dataHandler)
DataHandler
オブジェクトを AttachmentPart
オブジェクトのデータハンドラとして設定します。通常、着信メッセージには、データハンドラが自動的に設定されます。メッセージの作成中やコンテンツによるメッセージの生成中に setDataHandler
メソッドを使用すると、さまざまなデータソースのデータをメッセージに組み込むことができます。dataHandler
- 設定される DataHandler
オブジェクトIllegalArgumentException
- 指定した DataHandler
オブジェクトに問題があった場合public String getContentId()
String
。存在しない場合は null
setContentId(java.lang.String)
public String getContentLocation()
String
。存在しない場合は null
public String getContentType()
String
。存在しない場合は null
public void setContentId(String contentId)
contentId
- "Content-ID" ヘッダーの値を示す String
IllegalArgumentException
- 指定した contentId
値に問題があった場合getContentId()
public void setContentLocation(String contentLocation)
contentLocation
- "Content-Location" ヘッダーの値を示す String
IllegalArgumentException
- 指定したコンテンツの場所に問題があった場合public void setContentType(String contentType)
contentType
- "Content-Type" ヘッダーの値を示す String
IllegalArgumentException
- 指定したコンテンツタイプに問題があった場合public abstract void removeMimeHeader(String header)
header
- 削除する MIME ヘッダーの文字列名public abstract void removeAllMimeHeaders()
public abstract String[] getMimeHeader(String name)
String
で識別されたヘッダーの値をすべて取得します。name
- ヘッダーの名前。例:"Content-Type"String
配列setMimeHeader(java.lang.String, java.lang.String)
public abstract void setMimeHeader(String name, String value)
RFC822 ヘッダーは US-ASCII 文字だけを含むことが可能である点に注意してください。
name
- 検索するヘッダー名を示す String
value
- 指定の名前と一致する名前を持つヘッダーに設定する値を示す String
IllegalArgumentException
- 指定した MIME ヘッダー名または値に問題があった場合public abstract void addMimeHeader(String name, String value)
AttachmentPart
オブジェクトに追加します。
RFC822 ヘッダーは US-ASCII 文字だけを含むことが可能である点に注意してください。
name
- 追加するヘッダーの名前を示す String
value
- 追加するヘッダーの値を示す String
IllegalArgumentException
- 指定した MIME ヘッダー名または値に問題があった場合public abstract Iterator getAllMimeHeaders()
AttachmentPart
オブジェクトのすべてのヘッダーを MimeHeader
オブジェクトのイテレータとして取得します。AttachmentPart
オブジェクトの MIME ヘッダーすべてを含む Iterator
オブジェクトpublic abstract Iterator getMatchingMimeHeaders(String[] names)
MimeHeader
オブジェクトを取得します。names
- 返される MIME ヘッダーの名前を含む String
配列Iterator
オブジェクトとして指定した配列内の名前の 1 つと一致するすべての MIME ヘッダー バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.