- java.lang.Object
-
- javax.xml.soap.AttachmentPart
-
public abstract class AttachmentPart extends Object
SOAPMessageオブジェクトへの個々の添付です。SOAPMessageオブジェクトには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ヘッダーの設定後、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();- 導入されたバージョン:
- 1.6
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 AttachmentPart()
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 abstract voidaddMimeHeader(String name, String value)指定の名前と値を持つMIMEヘッダーをこのAttachmentPartオブジェクトに追加します。abstract voidclearContent()このAttachmentPartオブジェクトのコンテンツをクリアします。abstract Iterator<MimeHeader>getAllMimeHeaders()このAttachmentPartオブジェクトのすべてのヘッダーをMimeHeaderオブジェクトのイテレータとして取得します。abstract InputStreamgetBase64Content()AttachmentPartのコンテンツをBase64でエンコードされた文字データとして取得するために使用できるInputStreamを返します。このメソッドを使用すると、添付のrawバイトがBase64でエンコードされて返されます。abstract ObjectgetContent()このAttachmentPartオブジェクトのコンテンツをJavaオブジェクトとして取得します。StringgetContentId()名前が"Content-ID"のMIMEヘッダーの値を取得します。StringgetContentLocation()名前が"Content-Location"のMIMEヘッダーの値を取得します。StringgetContentType()名前が"Content-Type"のMIMEヘッダーの値を取得します。abstract DataHandlergetDataHandler()このAttachmentPartオブジェクトのDataHandlerオブジェクトを取得します。abstract Iterator<MimeHeader>getMatchingMimeHeaders(String[] names)指定した配列内の名前に一致するすべてのMimeHeaderオブジェクトを取得します。abstract String[]getMimeHeader(String name)指定のStringで識別されたヘッダーの値をすべて取得します。abstract Iterator<MimeHeader>getNonMatchingMimeHeaders(String[] names)名前が指定した配列内の名前と一致しないすべてのMimeHeaderオブジェクトを取得します。abstract InputStreamgetRawContent()getContentへの呼出しが実行されたうえでDataContentHandlerがこのAttachmentPartのcontent-typeに登録されなかったものと見なし、このAttachmentPartオブジェクトのコンテンツをInputStreamとして取得します。abstract byte[]getRawContentBytes()getContentへの呼出しが実行されたうえでDataContentHandlerがこのAttachmentPartのcontent-typeに登録されなかったものと見なし、このAttachmentPartオブジェクトのコンテンツをbyte[]配列として取得します。abstract intgetSize()このAttachmentPartオブジェクトのバイト数を返します。abstract voidremoveAllMimeHeaders()MIMEヘッダーのエントリをすべて削除します。abstract voidremoveMimeHeader(String header)指定した名前に一致するMIMEヘッダーをすべて削除します。abstract voidsetBase64Content(InputStream content, String contentType)Base64のソースInputStreamからこの添付部分のコンテンツを設定し、Content-Typeヘッダーの値をcontentTypeに含まれる値に設定します。このメソッドにより、Base64の入力内容は最初にデコードされ、最終的にrawバイトが添付部分に書き込まれます。abstract voidsetContent(Object object, String contentType)この添付部分のコンテンツを指定のObjectのコンテンツに設定し、Content-Typeヘッダーの値を指定の型にします。voidsetContentId(String contentId)名前が"Content-ID"のMIMEヘッダーを指定の値で設定します。voidsetContentLocation(String contentLocation)名前が"Content-Location"のMIMEヘッダーを指定の値で設定します。voidsetContentType(String contentType)名前が"Content-Type"のMIMEヘッダーを指定の値で設定します。abstract voidsetDataHandler(DataHandler dataHandler)指定のDataHandlerオブジェクトをAttachmentPartオブジェクトのデータ・ハンドラとして設定します。abstract voidsetMimeHeader(String name, String value)指定の名前に一致する、最初のヘッダー・エントリを指定の値に変更します。既存のヘッダーで一致するものがない場合、新たにヘッダーを追加します。abstract voidsetRawContent(InputStream content, String contentType)この添付部分のコンテンツをInputStreamcontentに含まれるものとして設定し、Content-Typeヘッダーの値をcontentTypeに含まれる値に設定します。abstract voidsetRawContentBytes(byte[] content, int offset, int len, String 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 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オブジェクトにコンテンツが設定されていない場合、またはデータ変換エラーが発生した場合
-
getRawContent
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オブジェクトにコンテンツが設定されていない場合、またはデータ変換エラーが発生した場合。- 導入されたバージョン:
- 1.6, SAAJ 1.3
- 関連項目:
getRawContentBytes()
-
getRawContentBytes
public abstract byte[] getRawContentBytes() throws SOAPExceptiongetContentへの呼出しが実行されたうえでDataContentHandlerがこのAttachmentPartのcontent-typeに登録されなかったものと見なし、このAttachmentPartオブジェクトのコンテンツをbyte[]配列として取得します。- 戻り値:
AttachmentPartのrawデータを含むbyte[]配列。- 例外:
SOAPException- このAttachmentPartオブジェクトにコンテンツが設定されていない場合、またはデータ変換エラーが発生した場合。- 導入されたバージョン:
- 1.6, SAAJ 1.3
-
getBase64Content
public abstract InputStream getBase64Content() throws SOAPException
AttachmentPartのコンテンツをBase64でエンコードされた文字データとして取得するために使用できるInputStreamを返します。このメソッドを使用すると、添付のrawバイトがBase64でエンコードされて返されます。- 戻り値:
InputStream。Base64でエンコードされたAttachmentPartをこのInputStreamから読み込むことができる。- 例外:
SOAPException- このAttachmentPartオブジェクトにコンテンツが設定されていない場合、またはデータ変換エラーが発生した場合。- 導入されたバージョン:
- 1.6, SAAJ 1.3
-
setContent
public abstract void setContent(Object object, String contentType)
この添付部分のコンテンツを指定のObjectのコンテンツに設定し、Content-Typeヘッダーの値を指定の型にします。Objectの型は、Content-Typeで指定した値に対応する必要があります。 これは、使用中のDataContentHandlerオブジェクトの特定のセットによって異なります。- パラメータ:
object- この添付部分のコンテンツを構成するJavaオブジェクトcontentType- コンテンツ・タイプを指定するMIME文字列- 例外:
IllegalArgumentException- contentTypeがコンテンツ・オブジェクトのタイプと一致しない場合、またはこのコンテンツ・オブジェクトにDataContentHandlerオブジェクトがなかった場合に、スローされることがある- 関連項目:
getContent()
-
setRawContent
public abstract void setRawContent(InputStream content, String contentType) throws SOAPException
この添付部分のコンテンツをInputStreamcontentに含まれるものとして設定し、Content-Typeヘッダーの値をcontentTypeに含まれる値に設定します。以降のgetSize()の呼出しは正確なコンテンツ・サイズでない場合があります。
- パラメータ:
content- 添付部分に追加するrawデータcontentType-Content-Typeヘッダーに設定する値- 例外:
SOAPException- コンテンツの設定でエラーが発生した場合NullPointerException-contentがnullである場合- 導入されたバージョン:
- 1.6, SAAJ 1.3
-
setRawContentBytes
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の場合- 導入されたバージョン:
- 1.6, SAAJ 1.3
-
setBase64Content
public abstract void setBase64Content(InputStream content, String contentType) throws SOAPException
Base64のソースInputStreamからこの添付部分のコンテンツを設定し、Content-Typeヘッダーの値をcontentTypeに含まれる値に設定します。このメソッドにより、Base64の入力内容は最初にデコードされ、最終的にrawバイトが添付部分に書き込まれます。以降のgetSize()の呼出しは正確なコンテンツ・サイズでない場合があります。
- パラメータ:
content- 添付部分に追加するBase64でエンコードされたデータcontentType-Content-Typeヘッダーに設定する値- 例外:
SOAPException- コンテンツの設定でエラーが発生した場合NullPointerException-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オブジェクト- 例外:
IllegalArgumentException- 指定したDataHandlerオブジェクトに問題があった場合
-
getContentId
public String getContentId()
名前が"Content-ID"のMIMEヘッダーの値を取得します。- 戻り値:
- "Content-ID"ヘッダーの値を示す
String。存在しない場合はnull - 関連項目:
setContentId(java.lang.String)
-
getContentLocation
public String getContentLocation()
名前が"Content-Location"のMIMEヘッダーの値を取得します。- 戻り値:
- "Content-Location"ヘッダーの値を示す
String。存在しない場合はnull
-
getContentType
public String getContentType()
名前が"Content-Type"のMIMEヘッダーの値を取得します。- 戻り値:
- "Content-Type"ヘッダーの値を示す
String。存在しない場合はnull
-
setContentId
public void setContentId(String contentId)
名前が"Content-ID"のMIMEヘッダーを指定の値で設定します。- パラメータ:
contentId- "Content-ID"ヘッダーの値を示すString- 例外:
IllegalArgumentException- 指定したcontentId値に問題があった場合- 関連項目:
getContentId()
-
setContentLocation
public void setContentLocation(String contentLocation)
名前が"Content-Location"のMIMEヘッダーを指定の値で設定します。- パラメータ:
contentLocation- "Content-Location"ヘッダーの値を示すString- 例外:
IllegalArgumentException- 指定したコンテンツの場所に問題があった場合
-
setContentType
public void setContentType(String contentType)
名前が"Content-Type"のMIMEヘッダーを指定の値で設定します。- パラメータ:
contentType- "Content-Type"ヘッダーの値を示すString- 例外:
IllegalArgumentException- 指定したコンテンツ・タイプに問題があった場合
-
removeMimeHeader
public abstract void removeMimeHeader(String header)
指定した名前に一致するMIMEヘッダーをすべて削除します。- パラメータ:
header- 削除するMIMEヘッダーの文字列名
-
removeAllMimeHeaders
public abstract void removeAllMimeHeaders()
MIMEヘッダーのエントリをすべて削除します。
-
getMimeHeader
public abstract String[] getMimeHeader(String name)
指定のStringで識別されたヘッダーの値をすべて取得します。- パラメータ:
name- ヘッダーの名前。例: "Content-Type"- 戻り値:
- 指定のヘッダーの値を示す
String配列 - 関連項目:
setMimeHeader(java.lang.String, java.lang.String)
-
setMimeHeader
public abstract void setMimeHeader(String name, String value)
指定の名前に一致する、最初のヘッダー・エントリを指定の値に変更します。既存のヘッダーで一致するものがない場合、新たにヘッダーを追加します。 また、このメソッドは、一致するヘッダーの最初のエントリ以外をすべて削除します。RFC822ヘッダーはUS-ASCII文字だけを含むことが可能である点に注意してください。
- パラメータ:
name- 検索するヘッダー名を示すStringvalue- 指定の名前と一致する名前を持つヘッダーに設定する値を示すString- 例外:
IllegalArgumentException- 指定したMIMEヘッダー名または値に問題があった場合
-
addMimeHeader
public abstract void addMimeHeader(String name, String value)
指定の名前と値を持つMIMEヘッダーをこのAttachmentPartオブジェクトに追加します。RFC822ヘッダーはUS-ASCII文字だけを含むことが可能である点に注意してください。
- パラメータ:
name- 追加するヘッダーの名前を示すStringvalue- 追加するヘッダーの値を示すString- 例外:
IllegalArgumentException- 指定したMIMEヘッダー名または値に問題があった場合
-
getAllMimeHeaders
public abstract Iterator<MimeHeader> getAllMimeHeaders()
このAttachmentPartオブジェクトのすべてのヘッダーをMimeHeaderオブジェクトのイテレータとして取得します。- 戻り値:
- この
AttachmentPartオブジェクトのMIMEヘッダーすべてを含むIteratorオブジェクト
-
getMatchingMimeHeaders
public abstract Iterator<MimeHeader> getMatchingMimeHeaders(String[] names)
指定した配列内の名前に一致するすべてのMimeHeaderオブジェクトを取得します。- パラメータ:
names- 返されるMIMEヘッダーの名前を含むString配列- 戻り値:
Iteratorオブジェクトとして指定した配列内の名前の1つと一致するすべてのMIMEヘッダー
-
getNonMatchingMimeHeaders
public abstract Iterator<MimeHeader> getNonMatchingMimeHeaders(String[] names)
名前が指定した配列内の名前と一致しないすべてのMimeHeaderオブジェクトを取得します。- パラメータ:
names- 返されないMIMEヘッダーの名前を含むString配列- 戻り値:
- 指定した配列内の名前の1つに一致するものを除く、この
AttachmentPartオブジェクト内のすべてのMIMEヘッダー。 一致しないMIMEヘッダーは、Iteratorオブジェクトとして返される。
-
-