- java.lang.Object
-
- javax.xml.soap.AttachmentPart
-
public abstract class AttachmentPart extends Object
一个附件到一个SOAPMessage对象。SOAPMessage对象可以包含零个,一个或多个AttachmentPart对象。 每个AttachmentPart对象由两部分组成,特定于应用程序的内容和关联的MIME头。 MIME标头由可用于标识和描述内容的名称/值对组成。一个
AttachmentPart对象必须符合某些标准。- 它必须符合MIME [RFC2045] standards
- 它必须包含内容
- 标题部分必须包括以下标题:
-
Content-Type
此标头标识AttachmentPart对象的内容中的数据类型,并且必须符合[RFC2045]。 以下是Content-Type标题的示例:Content-Type: application/xml以下代码行ap是一个AttachmentPart对象,设置前一示例中显示的标题。ap.setMimeHeader("Content-Type", "application/xml");
-
AttachmentPart对象的内容部分没有限制。 内容可以是从简单的纯文本对象到复杂的XML文档或图像文件的任何内容。使用方法
SOAPMessage.createAttachmentPart创建一个AttachmentPart对象。 设置其MIME标头后,AttachmentPart对象将添加到使用方法SOAPMessage.addAttachmentPart创建的消息。下面的代码片段,其中
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();- 从以下版本开始:
- 1.6
-
-
构造方法摘要
构造方法 Constructor 描述 AttachmentPart()
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 abstract voidaddMimeHeader(String name, String value)向该AttachmentPart对象添加具有指定名称和值的MIME标头。abstract voidclearContent()清除此AttachmentPart对象的内容。abstract Iterator<MimeHeader>getAllMimeHeaders()检索这一切的头AttachmentPart对象为在一个迭代MimeHeader对象。abstract InputStreamgetBase64Content()返回一个InputStream其可以被用来获得的内容AttachmentPart为Base64编码字符数据,此方法将进行Base64编码,附着和返回的原始字节。abstract ObjectgetContent()获取此AttachmentPart对象的内容作为Java对象。StringgetContentId()获取名称为“Content-ID”的MIME标头的值。StringgetContentLocation()获取名称为“Content-Location”的MIME标头的值。StringgetContentType()获取名称为“Content-Type”的MIME标头的值。abstract DataHandlergetDataHandler()获取DataHandler对象的AttachmentPart对象。abstract Iterator<MimeHeader>getMatchingMimeHeaders(String[] names)检索与给定数组中的名称相匹配的所有MimeHeader对象。abstract String[]getMimeHeader(String name)获取由给定的String标识的标题的所有值。abstract Iterator<MimeHeader>getNonMatchingMimeHeaders(String[] names)检索名称与给定数组中的名称不匹配的所有MimeHeader对象。abstract InputStreamgetRawContent()获取此内容AttachmentPart对象作为InputStream仿佛调用了到getContent,没有DataContentHandler已经登记为content-type这一点AttachmentPart。abstract byte[]getRawContentBytes()获取AttachmentPart对象的内容作为byte []数组,就像对getContentDataContentHandler已经注册了content-type,并且没有注册AttachmentPart。abstract intgetSize()返回此AttachmentPart对象中的字节数。abstract voidremoveAllMimeHeaders()删除所有的MIME标题条目。abstract voidremoveMimeHeader(String header)删除与给定名称相匹配的所有MIME标头。abstract voidsetBase64Content(InputStream content, String contentType)将此附件部分从所述的Base64源的内容InputStream和设置的值Content-Type头中包含的值contentType,此方法将首先解码的base64输入并写入到附接所得的原始字节。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给出的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对象中,或者是否存在数据转换错误
-
getRawContent
public abstract InputStream getRawContent() throws SOAPException
获取此内容AttachmentPart对象作为InputStream仿佛调用了到getContent,没有DataContentHandler已经登记为content-type这一点AttachmentPart。请注意,从返回的InputStream读取将导致消息流中的数据。 调用后续API之前,调用方有责任重新设置InputStream。 如果需要原始附件内容的副本,则应使用
getRawContentBytes()API。- 结果
-
一个
InputStream从其中由包含在所述原始数据AttachmentPart可被访问。 - 异常
-
SOAPException- 如果没有将内容设置到此AttachmentPart对象中,或者是否存在数据转换错误。 - 从以下版本开始:
- 1.6,SAAJ 1.3
- 另请参见:
-
getRawContentBytes()
-
getRawContentBytes
public abstract byte[] getRawContentBytes() throws SOAPException获取此内容AttachmentPart对象作为byte []数组仿佛呼叫已作出getContent和无DataContentHandler已经登记为content-type此的AttachmentPart。- 结果
-
一个
byte[]阵列包含的原始数据AttachmentPart。 - 异常
-
SOAPException- 如果在此AttachmentPart对象中没有设置内容,或者是否存在数据转换错误。 - 从以下版本开始:
- 1.6,SAAJ 1.3
-
getBase64Content
public abstract InputStream getBase64Content() throws SOAPException
返回一个InputStream,可用于获取AttachmentPart的内容作为Base64编码字符数据,此方法将base64编码附件的原始字节并返回。- 结果
-
一个
InputStream从中Base64编码AttachmentPart可被读取。 - 异常
-
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- 添加到附件部分的原始数据 -
contentType- 设置为Content-Type标头的值 - 异常
-
SOAPException- 如果在设置内容时出现错误 -
NullPointerException- 如果content为空 - 从以下版本开始:
- 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- 添加到附件部分的原始数据 -
contentType- 设置为Content-Type标题的值 -
offset- 内容的字节数组中的偏移量 -
len- 形成内容的字节数 - 异常
-
SOAPException- 如果设置内容或内容为空,则出现错误 - 从以下版本开始:
- 1.6,SAAJ 1.3
-
setBase64Content
public abstract void setBase64Content(InputStream content, String contentType) throws SOAPException
将此附件部分从所述的Base64源的内容InputStream和设置的值Content-Type头中包含的值contentType,此方法将首先解码的base64输入并写入到附接所得的原始字节。对getSize()的后续调用可能不是内容大小的精确度量。
- 参数
-
content- 要添加到附件部分的base64编码数据 -
contentType- 设置为Content-Type头的值 - 异常
-
SOAPException- 如果在设置内容时出现错误 -
NullPointerException- 如果content为空 - 从以下版本开始:
- 1.6,SAAJ 1.3
-
getDataHandler
public abstract DataHandler getDataHandler() throws SOAPException
获取此DataHandler对象的AttachmentPart对象。- 结果
-
与该
DataHandler对象关联的AttachmentPart对象 - 异常
-
SOAPException- 如果此AttachmentPart对象中没有数据
-
setDataHandler
public abstract void setDataHandler(DataHandler dataHandler)
将给定DataHandler对象作为此数据处理程序AttachmentPart对象。 通常,在传入消息中,数据处理程序将自动设置。 当使用内容创建和填充消息时,可以使用setDataHandler方法从各种数据源获取数据到消息中。- 参数
-
dataHandler- 要设置的DataHandler对象 - 异常
-
IllegalArgumentException- 如果指定的DataHandler对象有问题
-
getContentId
public String getContentId()
获取名称为“Content-ID”的MIME标头的值。- 结果
-
一个
String给出“Content-ID”头或null的值,如果没有 - 另请参见:
-
setContentId(java.lang.String)
-
getContentLocation
public String getContentLocation()
获取名称为“Content-Location”的MIME标头的值。- 结果
-
一个
String给出“内容位置”标题的值或null如果没有
-
getContentType
public String getContentType()
获取名称为“Content-Type”的MIME标头的值。- 结果
-
一个
String给出了“Content-Type”头或null的值,如果没有
-
setContentId
public void setContentId(String contentId)
使用给定值设置名称为“Content-ID”的MIME标头。- 参数
-
contentId- 一个String给出“Content-ID”头的值 - 异常
-
IllegalArgumentException- 如果指定的值为contentId有问题 - 另请参见:
-
getContentId()
-
setContentLocation
public void setContentLocation(String contentLocation)
使用给定值设置名称为“Content-Location”的MIME头。- 参数
-
contentLocation- 一个String给出“内容位置”标题的值 - 异常
-
IllegalArgumentException- 如果指定的内容位置有问题
-
setContentType
public void setContentType(String contentType)
使用给定值设置名称为“Content-Type”的MIME头。- 参数
-
contentType- aString给出“Content-Type”头的值 - 异常
-
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对象。- 结果
-
一个
Iterator对象与所有的这个AttachmentPart对象的Mime标头
-
getMatchingMimeHeaders
public abstract Iterator<MimeHeader> getMatchingMimeHeaders(String[] names)
检索与给定数组中的名称相匹配的所有MimeHeader对象。- 参数
-
names- 要返回的MIME标题的名称的String数组 - 结果
-
所有MIME头匹配给定数组中的一个名称作为一个
Iterator对象
-
getNonMatchingMimeHeaders
public abstract Iterator<MimeHeader> getNonMatchingMimeHeaders(String[] names)
检索名称与给定数组中的名称不匹配的所有MimeHeader对象。- 参数
-
names- 具有MIME标题名称的String数组不被返回 - 结果
-
该
AttachmentPart对象中的所有MIME标头,除了与给定数组中的一个名称相匹配的对象。 不匹配的MIME标题作为Iterator对象返回。
-
-