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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。