public abstract class SOAPMessage extends Object
SOAPMessage对象由SOAP部分和可选的一个或多个附件部分组成。 SOAPMessage对象的SOAP部分是一个SOAPPart对象,其中包含用于消息路由和标识的信息,可以包含应用程序特定的内容。 消息的SOAP部分中的所有数据必须是XML格式。
新的SOAPMessage对象默认包含以下内容:
SOAPPart对象 SOAPEnvelope对象 SOAPBody对象 SOAPHeader对象 SOAPMessage.getSOAPPart() 。
所述SOAPEnvelope对象从检索SOAPPart对象,并且SOAPEnvelope对象用于检索SOAPBody个SOAPHeader对象。
SOAPPart sp = message.getSOAPPart();
SOAPEnvelope se = sp.getEnvelope();
SOAPBody sb = se.getBody();
SOAPHeader sh = se.getHeader();
除了强制性的SOAPPart对象外, SOAPMessage对象可能包含零个或多个AttachmentPart对象,每个对象包含应用程序特定的数据。 SOAPMessage接口提供了创建AttachmentPart对象以及将其添加到SOAPMessage对象的方法。 收到一个SOAPMessage对象的一方可以通过检索各个附件部分来检查其内容。
与SOAP消息的其余部分不同,附件不需要是XML格式,因此可以是从简单文本到图像文件的任何内容。 因此,任何不是XML格式的邮件内容都必须在AttachmentPart对象中。
MessageFactory对象可以创建SOAPMessage对象,该对象具有专门针对SAAJ的特定实现或应用程序的行为。 例如, MessageFactory对象可能产生符合特定配置文件(如ebXML)的SOAPMessage对象。 在这种情况下, MessageFactory对象可能会产生使用ebXML头部SOAPMessage对象。
为了确保向后的源兼容性,在SAAJ规范版本1.1之后添加到此类的方法都是具体而不是抽象的,它们都具有默认实现。 除非在JavaDocs中为这些方法另有说明,默认实现只需抛出一个UnsupportedOperationException ,并且SAAJ实现代码必须用提供指定行为的方法覆盖它们。 然而,传统的客户端代码没有这种限制,只要没有声明符合规范的某些更新版本,而不是最初编写的。 扩展SOAPMessage类的遗留类可以编译和/或针对后续版本的SAAJ API进行运行,而无需修改。 如果这样的一个类被正确地实现,那么它将继续正确地相对于它被编写的规范版本而正确地运行。
MessageFactory , AttachmentPart
| Modifier and Type | Field and Description |
|---|---|
static String |
CHARACTER_SET_ENCODING
指定SOAP消息的字符类型编码。
|
static String |
WRITE_XML_DECLARATION
指定SOAP消息发送时是否包含XML声明。
|
| Constructor and Description |
|---|
SOAPMessage() |
| Modifier and Type | Method and Description |
|---|---|
abstract void |
addAttachmentPart(AttachmentPart AttachmentPart)
将给定的
AttachmentPart对象添加到此
SOAPMessage对象。
|
abstract int |
countAttachments()
获取此消息中附件数量的计数。
|
abstract AttachmentPart |
createAttachmentPart()
创建一个新的空
AttachmentPart对象。
|
AttachmentPart |
createAttachmentPart(DataHandler dataHandler)
创建一个
AttachmentPart对象,并使用给定的
DataHandler对象进行
DataHandler 。
|
AttachmentPart |
createAttachmentPart(Object content, String contentType)
创建一个
AttachmentPart对象,并使用指定的内容类型的指定数据填充它。
|
abstract AttachmentPart |
getAttachment(SOAPElement element)
返回与
AttachmentPart对象,该
SOAPElement或
null如果不存在此类附件。
|
abstract Iterator |
getAttachments()
检索所有
AttachmentPart对象是这部分
SOAPMessage对象。
|
abstract Iterator |
getAttachments(MimeHeaders headers)
检索具有与指定标题匹配的标题条目的所有
AttachmentPart对象。
|
abstract String |
getContentDescription()
检索此
SOAPMessage对象内容的描述。
|
abstract MimeHeaders |
getMimeHeaders()
以传输独立的方式返回此
SOAPMessage对象的所有传输特定MIME标头。
|
Object |
getProperty(String property)
检索指定属性的值。
|
SOAPBody |
getSOAPBody()
获取此
SOAPMessage对象中包含的SOAP Body。
|
SOAPHeader |
getSOAPHeader()
获取此
SOAPMessage对象中包含的SOAP头。
|
abstract SOAPPart |
getSOAPPart()
获取此
SOAPMessage对象的SOAP部分。
|
abstract void |
removeAllAttachments()
删除所有
AttachmentPart已经加入到这一对象
SOAPMessage对象。
|
abstract void |
removeAttachments(MimeHeaders headers)
删除所有具有与指定标题匹配的标题条目的
AttachmentPart对象。
|
abstract void |
saveChanges()
更新此
SOAPMessage对象,并对其进行了所有更改。
|
abstract boolean |
saveRequired()
指示这个
SOAPMessage对象是否需要调用方法
saveChanges 。
|
abstract void |
setContentDescription(String description)
使用给定的说明设置此
SOAPMessage对象的内容的描述。
|
void |
setProperty(String property, Object value)
将指定的值与指定的属性相关联。
|
abstract void |
writeTo(OutputStream out)
将此
SOAPMessage对象写入给定的输出流。
|
public static final String CHARACTER_SET_ENCODING
SOAPMessage.setProperty ,
Constant Field Values
public static final String WRITE_XML_DECLARATION
SOAPMessage.setProperty ,
Constant Field Values
public abstract void setContentDescription(String description)
SOAPMessage对象的内容的描述。
description -
String此消息内容的String
getContentDescription()
public abstract String getContentDescription()
SOAPMessage对象内容的描述。
String此消息内容的
null或
null如果没有设置描述)
setContentDescription(java.lang.String)
public abstract SOAPPart getSOAPPart()
SOAPMessage对象的SOAP部分。
SOAPMessage对象包含一个或多个附件,SOAP部分必须是消息中的第一个MIME主体部分。
SOAPPart对象为此
SOAPMessage对象
public SOAPBody getSOAPBody() throws SOAPException
SOAPMessage对象中包含的SOAP Body。
SOAPBody对象包含的
SOAPMessage对象
SOAPException - 如果SOAP主体不存在或无法检索
public SOAPHeader getSOAPHeader() throws SOAPException
SOAPMessage对象中包含的SOAP头。
SOAPHeader对象包含此
SOAPMessage对象
SOAPException - 如果SOAP头不存在或无法检索
public abstract void removeAllAttachments()
AttachmentPart已经加入到这一对象SOAPMessage对象。
此方法不接触SOAP部分。
public abstract int countAttachments()
AttachmentPart对象的数量是这个
SOAPMessage对象的一部分
public abstract Iterator getAttachments()
AttachmentPart对象是这部分
SOAPMessage对象。
public abstract Iterator getAttachments(MimeHeaders headers)
AttachmentPart对象。
请注意,返回的附件除了指定的附件之外还可能包含标题。
headers - 一个
MimeHeaders要搜索的MIME标题的
MimeHeaders对象
public abstract void removeAttachments(MimeHeaders headers)
AttachmentPart对象。
请注意,删除的附件除了指定的附件之外还可能有标题。
headers - 一个
MimeHeaders要搜索的MIME标题的
MimeHeaders对象
public abstract AttachmentPart getAttachment(SOAPElement element) throws SOAPException
AttachmentPart对象,该对象与由此SOAPElement或null如果不存在此类附件。
引用可以通过进行href属性中所描述SOAP Messages with Attachments经由单个,或Text含有URI作为WS-I附件描述简介1.0模式类型的元素的子节点ref:swaRef 。
必须支持这两个机制。
通过href引用支持也意味着这个方法也应该是一个元素,它是一个xop:Include元素( XOP )。
其他参考机制可以由该标准的各个实现来支持。
有关详细信息,请联系您的供应商。
element - 包含
SOAPElement附件的引用的SOAPElement
AttachmentPart或如果没有这样的
AttachmentPart存在null或在此
SOAPElement没有
SOAPElement 。
SOAPException - 如果尝试访问附件时出现错误
public abstract void addAttachmentPart(AttachmentPart AttachmentPart)
AttachmentPart对象添加到此SOAPMessage对象。
必须创建一个AttachmentPart对象,然后才能将其添加到消息中。
AttachmentPart -一个
AttachmentPart对象,它是成为本的一部分
SOAPMessage对象
IllegalArgumentException
public abstract AttachmentPart createAttachmentPart()
AttachmentPart对象。
请注意,必须使用此新的AttachmentPart对象作为参数调用方法addAttachmentPart ,以使其成为此SOAPMessage对象的SOAPMessage 。
AttachmentPart对象,可以填充并添加到此
SOAPMessage对象
public AttachmentPart createAttachmentPart(DataHandler dataHandler)
AttachmentPart对象,并使用给定的
DataHandler对象进行
DataHandler 。
dataHandler -在
javax.activation.DataHandler对象将生成此内容
SOAPMessage对象
AttachmentPart对象,其中包含由给定的
DataHandler对象
DataHandler数据
IllegalArgumentException - 如果指定的
DataHandler对象有问题
DataHandler , DataContentHandler
public abstract MimeHeaders getMimeHeaders()
SOAPMessage对象的所有传输特定MIME标头。
MimeHeaders对象的
MimeHeader对象
public AttachmentPart createAttachmentPart(Object content, String contentType)
AttachmentPart对象,并使用指定的内容类型的指定数据AttachmentPart对象。
的类型的Object应该对应于用于给定的值Content-Type 。
content -一个
Object包含内容为
AttachmentPart被创建的对象
contentType - 提供内容类型的String对象;
示例是“text / xml”,“text / plain”和“image / jpeg”
AttachmentPart对象
IllegalArgumentException - 如果contentType与内容对象的类型不匹配,或者如果给定的内容对象没有
DataContentHandler对象,则可能会抛出
DataHandler , DataContentHandler
public abstract void saveChanges()
throws SOAPException
SOAPMessage对象,并对其进行了所有更改。
当调用writeTo(OutputStream)时,会自动调用此方法。
但是,如果对已收到的消息或已发送的消息进行更改,则需要显式调用方法saveChanges以保存更改。
方法saveChanges还生成可以回读的任何更改(例如,支持消息标识的配置文件中的MessageId)。
为发送目的创建的消息中的所有MIME标头只有在saveChanges之后saveChanges 。
此外,该方法标记了将所有AttachmentPart对象的数据拉入消息的点。
SOAPException - 如果在保存对此消息的更改时出现问题。
SOAPException
public abstract boolean saveRequired()
SOAPMessage对象是否需要调用方法
saveChanges 。
true如果saveChanges需要调用;
false否则。
public abstract void writeTo(OutputStream out) throws SOAPException, IOException
SOAPMessage对象写入给定的输出流。
外部化格式由具有附件规范的SOAP 1.1定义。
如果没有附件,只会写出一个XML流。 对于那些有附件的邮件, writeTo写入MIME编码的字节流。
请注意,此方法不会写入消息的传输特定MIME标头
out -在
OutputStream到该对象
SOAPMessage对象将被写入
IOException - 如果发生I / O错误
SOAPException - 如果在外部化此SOAP消息时出现问题
public void setProperty(String property, Object value) throws SOAPException
有效的产权名称包括WRITE_XML_DECLARATION和CHARACTER_SET_ENCODING 。 所有这些标准SAAJ属性都以“javax.xml.soap”为前缀。 供应商还可以添加实现特定属性。 这些属性必须以供应商唯一的包名称作为前缀。
将属性WRITE_XML_DECLARATION设置为"true"将导致在SOAP消息开始时写出XML声明。 默认值“false”禁止此声明。
属性CHARACTER_SET_ENCODING默认为值"utf-8" ,这将导致SOAP消息使用UTF-8进行编码。 将CHARACTER_SET_ENCODING设置为"utf-16"导致SOAP消息使用UTF-16进行编码。
除了UTF-8和UTF-16之外,一些实现可能允许编码。 有关详细信息,请参阅供应商的文档。
property - 指定值
property的属性。
value - 与指定属性相关联的值
SOAPException - 如果属性名称无法识别。
public Object getProperty(String property) throws SOAPException
property - 要检索的属性的名称
null的值或如果没有此类属性,
null 。
SOAPException - 如果属性名称不被识别。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.