public interface SOAPEnvelope
SOAPPart
对象的 SOAPHeader 和 SOAPBody 部分的容器。默认情况下,使用带有 SOAPEnvelope
对象的 SOAPPart
对象创建 SOAPMessage
对象。SOAPEnvelope
对象默认带有空 SOAPBody
对象和空 SOAPHeader
对象。SOAPBody
对象是必需的,SOAPHeader
对象虽然是可选的,但在大多数情况下都会用到。如果不需要 SOAPHeader
对象,则可以删除该对象(稍后将显示该操作)。
客户端可以通过调用方法 SOAPEnvelope.getHeader
和 SOAPEnvelope.getBody
来访问 SOAPHeader
和 SOAPBody
对象。以下代码行首先使用 SOAPMessage
对象 message 获取 SOAPPart
对象 sp,然后使用后者获取 SOAPEnvelope
对象 se,最后调用上述的两种方法。
SOAPPart sp = message.getSOAPPart(); SOAPEnvelope se = sp.getEnvelope(); SOAPHeader sh = se.getHeader(); SOAPBody sb = se.getBody();
检索 SOAPEnvelope
对象当前的正文或头,然后将其删除并添加一个新正文或头,这样就能更改该对象的正文或头。javax.xml.soap.Node
方法 deleteNode
删除调用它的 XML 元素(节点)。例如,以下代码行删除由方法 getBody
检索的 SOAPBody
对象。
se.getBody().detachNode();要创建用来替换被移除对象的
SOAPHeader
对象,客户端应使用方法
SOAPEnvelope.addHeader
,该方法创建一个新头并将其添加到
SOAPEnvelope
对象。类似地,方法
addBody
创建一个新
SOAPBody
对象并将其添加到
SOAPEnvelope
对象。以下代码片段检索当前的头,然后将其删除并添加一个新头。接下来检索当前的正文,然后将其删除并添加一个新正文。
SOAPPart sp = message.getSOAPPart(); SOAPEnvelope se = sp.getEnvelope(); se.getHeader().detachNode(); SOAPHeader sh = se.addHeader(); se.getBody().detachNode(); SOAPBody sb = se.addBody();在已经存在的情况下添加
SOAPBody
或
SOAPHeader
是错误的。
SOAPEnvelope
接口提供了三种创建 Name
对象的方法。第一种方法使用本地名称、名称空间前缀以及名称空间 URI 创建 Name
对象。第二种方法使用本地名称和名称空间前缀创建 Name
对象,第三种方法只使用本地名称创建 Name
对象。以下代码行(其中 se 是一个 SOAPEnvelope
对象)创建带有所有三个元素的新 Name
对象。
Name name = se.createName("GetLastTradePrice", "WOMBAT", "http://www.wombat.org/trader");
字段摘要 |
---|
方法摘要 | |
---|---|
SOAPBody |
addBody() 创建一个 SOAPBody 对象,并将其设置为此 SOAPEnvelope 对象的 SOAPBody 对象。 |
SOAPHeader |
addHeader() 创建一个 SOAPHeader 对象,并将其设置为此 SOAPEnvelope 对象的 SOAPHeader 对象。 |
Name |
createName(String localName) 创建使用给定本地名称初始化的新 Name 对象。 |
Name |
createName(String localName, String prefix, String uri) 创建使用给定本地名称、名称空间前缀和名称空间 URL 初始化的新 Name 对象。 |
SOAPBody |
getBody() 返回与此 SOAPEnvelope 对象关联的 SOAPBody 对象。 |
SOAPHeader |
getHeader() 返回此 SOAPEnvelope 对象的 SOAPHeader 对象。 |
从接口 javax.xml.soap.Node 继承的方法 |
---|
detachNode, getParentElement, getValue, recycleNode, setParentElement, setValue |
方法详细信息 |
---|
Name createName(String localName, String prefix, String uri) throws SOAPException
Name
对象。
此工厂方法创建在 SOAP/XML 文档中使用的 Name
对象。
localName
- 给出本地名称的
String
prefix
- 给出名称空间前缀的
String
uri
- 给出名称空间 URI 的
String
Name
对象
SOAPException
- 如果存在 SOAP 错误
Name createName(String localName) throws SOAPException
Name
对象。
此工厂方法创建在 SOAP/XML 文档中使用的 Name
对象。
localName
- 给出本地名称的
String
Name
对象
SOAPException
- 如果存在 SOAP 错误
SOAPHeader getHeader() throws SOAPException
SOAPEnvelope
对象的
SOAPHeader
对象。
默认情况下,使用包含空 SOAPHeader
对象的 SOAPEnvelope
对象创建新 SOAPMessage
对象。因此,只要没有移除了头且尚未添加新头,方法 getHeader
将总是返回 SOAPHeader
对象。
SOAPHeader
对象,如果没有该对象,则返回
null
SOAPException
- 如果在获取
SOAPHeader
对象时出现问题
SOAPBody getBody() throws SOAPException
SOAPEnvelope
对象关联的
SOAPBody
对象。
默认情况下,使用包含空 SOAPBody
对象的 SOAPEnvelope
对象创建 SOAPMessage
对象。因此,只要没有移除了正文且尚未添加新正文,方法 getBody
将总是返回 SOAPBody
对象。
SOAPEnvelope
对象的
SOAPBody
的对象,如果没有该对象,则返回
null
SOAPException
- 如果在获取
SOAPBody
对象时出现问题
SOAPHeader addHeader() throws SOAPException
SOAPHeader
对象,并将其设置为此
SOAPEnvelope
对象的
SOAPHeader
对象。
当信封已包含头时,添加头是非法的。因此,此方法应该在移除了现有的头之后调用。
SOAPHeader
对象
SOAPException
- 如果此
SOAPEnvelope
对象已包含一个有效的
SOAPHeader
对象
SOAPBody addBody() throws SOAPException
SOAPBody
对象,并将其设置为此
SOAPEnvelope
对象的
SOAPBody
对象。
当信封已包含正文时,添加正文是非法的。因此,此方法应该在移除了现有的正文之后调用。
SOAPBody
对象
SOAPException
- 如果此
SOAPEnvelope
对象已包含一个有效的
SOAPBody
对象