| 
 | JavaTM Platform Standard Ed. 6 | |||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectjavax.xml.soap.AttachmentPart
public abstract class AttachmentPart
SOAPMessage 对象的一个附件。SOAPMessage 对象可以包含 0 个、1 个或多个 AttachmentPart 对象。每个 AttachmentPart 对象由两部分组成:特定于应用程序的内容和关联的 MIME 头。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 对象,并将 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)将此附件部分的内容设置为 InputStreamcontent所包含的内容,并将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 为 null
public 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 - 如果设置内容时发生错误,或者内容为 null
public abstract void setBase64Content(InputStream content,
                                      String contentType)
                               throws SOAPException
InputStream 设置此附件部分的内容,并将 Content-Type 头的值设置为 contentType 中包含的值,此方法将首先对 base64 输入流进行解码,然后将得到的原始字节写入附件。 
 后续调用 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" 头值的 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. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。