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, 2014, Oracle and/or its affiliates. All rights reserved.