|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object javax.xml.soap.AttachmentPart
public abstract class AttachmentPart
SOAPMessage
对象的一个附件。SOAPMessage
对象可以包含 0 个、1 个或多个 AttachmentPart
对象。每个 AttachmentPart
对象由两部分组成:特定于应用程序的内容和关联的 MIME 头。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
对象,并将 AttachmentPart
对象添加到 SOAPMessage
对象。
AttachmentPart ap1 = m.createAttachmentPart(); ap1.setContent(contentString1, "text/plain"); m.addAttachmentPart(ap1);
以下代码片段创建第二个 AttachmentPart
实例并将其添加到同一消息中。jpegData
是表示 jpeg 文件的一个二进制字节缓冲区。
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()
以 MimeHeader 对象上的迭代器形式,检索此 AttachmentPart 对象的所有头。 |
abstract InputStream |
getBase64Content()
以 Base64 编码字符数据的形式返回可用于获取 AttachmentPart 内容的 InputStream ,此方法将对附件的原始字节进行 Base64 编码,然后返回该内容。 |
abstract Object |
getContent()
以 Java 对象的形式获取此 AttachmentPart 对象的内容。 |
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()
以 InputStream 的形式获取此 AttachmentPart 对象的内容,等效于调用了 getContent 但没有为此 AttachmentPart 的 content-type 注册 DataContentHandler 。 |
abstract byte[] |
getRawContentBytes()
以 byte[] 数组形式获取此 AttachmentPart 对象的内容,等效于调用了 getContent 但没有为此 AttachmentPart 的 content-type 注册 DataContentHandler 。 |
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 输入流进行解码,然后将得到的原始字节写入附件。 |
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 中包含的值。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
public AttachmentPart()
方法详细信息 |
---|
public abstract int getSize() throws SOAPException
AttachmentPart
对象中的字节数。
AttachmentPart
对象的大小,以字节为单位;如果无法确定其大小,则返回 -1
SOAPException
- 如果此附件的内容已损坏,或者尝试确定其大小时引发异常。public abstract void clearContent()
AttachmentPart
对象的内容。MIME 头部分保持不变。
public abstract Object getContent() throws SOAPException
AttachmentPart
对象的内容。返回的 Java 对象的类型取决于:(1) 用来解释字节的 DataContentHandler
对象;(2) 头中给定的 Content-Type
。
对于 MIME 内容类型 "text/plain"、"text/html" 和 "text/xml",DataContentHandler
对象执行与对应于 MIME 类型的 Java 类型之间的转换。对于其他 MIME 类型,DataContentHandler
对象可以返回以原始字节形式包含内容的 InputStream
对象。
符合 SAAJ 的实现至少必须返回一个 java.lang.String
对象(与 Content-Type
值为 text/plain
的任何内容流相对应)、一个 javax.xml.transform.stream.StreamSource
对象(与 Content-Type
值为 text/xml
的内容流相对应)、以及一个 java.awt.Image
对象(与 Content-Type
值为 image/gif
或 image/jpeg
的内容流相对应)。对于已安装的 DataContentHandler
对象不理解的内容类型,DataContentHandler
对象要返回带有原始字节的 java.io.InputStream
对象。
AttachmentPart
对象内容的 Java 对象
SOAPException
- 如果此 AttachmentPart
对象中没有设置任何内容,或者出现数据转换错误public abstract InputStream getRawContent() throws SOAPException
AttachmentPart
对象的内容,等效于调用了 getContent
但没有为此 AttachmentPart
的 content-type
注册 DataContentHandler
。
注意,读取返回的 InputStream 可能导致消耗流中的数据。调用者负责在调用 Subsequent API 之前适当地重置 InputStream。如果需要附件原始内容的一个副本,则应改用 getRawContentBytes()
API。
InputStream
对象,从中可以访问 AttachmentPart
包含的原始数据。
SOAPException
- 如果此 AttachmentPart
对象中没有设置任何内容,或者出现数据转换错误。getRawContentBytes()
public abstract byte[] getRawContentBytes() throws SOAPException
AttachmentPart
对象的内容,等效于调用了 getContent
但没有为此 AttachmentPart
的 content-type
注册 DataContentHandler
。
AttachmentPart
原始数据的 byte[]
数组。
SOAPException
- 如果此 AttachmentPart
对象中没有设置任何内容,或者出现数据转换错误。public abstract InputStream getBase64Content() throws SOAPException
AttachmentPart
内容的 InputStream
,此方法将对附件的原始字节进行 Base64 编码,然后返回该内容。
InputStream
对象,从中可以读取 Base64 编码的 AttachmentPart
。
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
- 要添加到附件部分的原始数据contentType
- 将在 Content-Type
头中设置的值
SOAPException
- 如果设置内容时发生错误
NullPointerException
- 如果 content
为 nullpublic abstract void setRawContentBytes(byte[] content, int offset, int len, String contentType) throws SOAPException
byte[]
数组 content
所包含的内容,并将 Content-Type
头的值设置为 contentType
中包含的值。
content
- 要添加到附件部分的原始数据contentType
- 要在 Content-Type
头中设置的值offset
- 内容字节数组中的偏移量len
- 组成内容的字节数
SOAPException
- 如果设置内容时发生错误,或者内容为 nullpublic abstract void setBase64Content(InputStream content, String contentType) throws SOAPException
InputStream
设置此附件部分的内容,并将 Content-Type
头的值设置为 contentType
中包含的值,此方法将首先对 base64 输入流进行解码,然后将得到的原始字节写入附件。
后续调用 getSize() 可能无法准确度量内容的大小。
content
- 要添加到附件部分的 Base64 解码数据contentType
- 要在 Content-Type
头中设置的值
SOAPException
- 如果设置内容时发生错误
NullPointerException
- 如果 content
为 nullpublic 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()
MimeHeader
对象上的迭代器形式,检索此 AttachmentPart
对象的所有头。
AttachmentPart
对象所有 MIME 头的 Iterator
对象public abstract Iterator getMatchingMimeHeaders(String[] names)
MimeHeader
对象。
names
- 一个 String
数组,带有要返回的 MIME 头的名称
Iterator
对象的形式)public abstract Iterator getNonMatchingMimeHeaders(String[] names)
MimeHeader
对象。
names
- 一个 String
数组,带有无需返回的 MIME 头的名称
AttachmentPart
对象中的所有 MIME 头,但匹配给定数组中任一名称的 MIME 头除外。以 Iterator
对象的形式返回不匹配的 MIME 头。
|
JavaTM Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。