public abstract class AttachmentPart extends Object
SOAPMessage オブジェクトへの個々の添付です。SOAPMessage オブジェクトには 1 つ以上の AttachmentPart オブジェクトを追加できます (追加しないことも可能)。各 AttachmentPart オブジェクトは、アプリケーション固有のコンテンツとそれに関連する MIME ヘッダーの 2 つで構成されています。MIME ヘッダーは、コンテンツの識別と説明に使用する名前と値のペアで構成されています。
AttachmentPart オブジェクトは次の規格と条件を満たしている必要があります。
Content-TypeAttachmentPart オブジェクトのコンテンツのデータの型を指定。[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。存在しない場合は nullsetContentId(java.lang.String)public String getContentLocation()
String。存在しない場合は nullpublic String getContentType()
String。存在しない場合は nullpublic void setContentId(String contentId)
contentId - "Content-ID" ヘッダーの値を示す StringIllegalArgumentException - 指定した contentId 値に問題があった場合getContentId()public void setContentLocation(String contentLocation)
contentLocation - "Content-Location" ヘッダーの値を示す StringIllegalArgumentException - 指定したコンテンツの場所に問題があった場合public void setContentType(String contentType)
contentType - "Content-Type" ヘッダーの値を示す StringIllegalArgumentException - 指定したコンテンツタイプに問題があった場合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 - 検索するヘッダー名を示す Stringvalue - 指定の名前と一致する名前を持つヘッダーに設定する値を示す StringIllegalArgumentException - 指定した MIME ヘッダー名または値に問題があった場合public abstract void addMimeHeader(String name, String value)
AttachmentPart オブジェクトに追加します。
RFC822 ヘッダーは US-ASCII 文字だけを含むことが可能である点に注意してください。
name - 追加するヘッダーの名前を示す Stringvalue - 追加するヘッダーの値を示す StringIllegalArgumentException - 指定した 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.