- 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 void
addMimeHeader(String name, String value)
指定の名前と値を持つMIMEヘッダーをこのAttachmentPart
オブジェクトに追加します。abstract void
clearContent()
このAttachmentPart
オブジェクトのコンテンツをクリアします。abstract Iterator<MimeHeader>
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<MimeHeader>
getMatchingMimeHeaders(String[] names)
指定した配列内の名前に一致するすべてのMimeHeader
オブジェクトを取得します。abstract String[]
getMimeHeader(String name)
指定のString
で識別されたヘッダーの値をすべて取得します。abstract Iterator<MimeHeader>
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
に含まれる値に設定します。
-
-
-
メソッドの詳細
-
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 SOAPException
getContent
への呼出しが実行されたうえで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
この添付部分のコンテンツをInputStream
content
に含まれるものとして設定し、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
- 検索するヘッダー名を示すString
value
- 指定の名前と一致する名前を持つヘッダーに設定する値を示すString
- 例外:
IllegalArgumentException
- 指定したMIMEヘッダー名または値に問題があった場合
-
addMimeHeader
public abstract void addMimeHeader(String name, String value)
指定の名前と値を持つMIMEヘッダーをこのAttachmentPart
オブジェクトに追加します。RFC822ヘッダーはUS-ASCII文字だけを含むことが可能である点に注意してください。
- パラメータ:
name
- 追加するヘッダーの名前を示すString
value
- 追加するヘッダーの値を示す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
オブジェクトとして返される。
-
-