Module
java.xml.ws
Package javax.xml.soap
提供用于创建和构建SOAP消息的API。
该软件包在SOAP与JavaAss(SAAJ)1.4规范的附件API中定义。
javax.xml.soap
包中的API可以让您执行以下操作:
- 创建到指定端点的点对点连接
- 创建SOAP消息
- 创建一个XML片段
- 将内容添加到SOAP消息的头部
- 将内容添加到SOAP消息的正文中
- 创建附件,并向其添加内容
- 访问/添加/修改SOAP消息的部分
- 创建/添加/修改SOAP故障信息
- 从SOAP消息中提取内容
- 发送SOAP请求响应消息
另外, javax.xml.soap
包中的API扩展了其对应的org.w3c.dom
包。 这意味着SOAPPart
的SOAPMessage
也是DOM Level 2 Document
,并且可以通过使用DOM的应用程序,工具和库来操作(有关更多信息,请参见http://www.w3.org/DOM/)。 重要的是要注意,虽然可以使用DOM API将普通的DOM节点添加到SAAJ树中,但SAAJ API在检查或操作树时仍然需要返回SAAJ类型。 为了实现这一点,允许SAAJ API(特别是SOAPElement.getChildElements()
)以相应的所需类型的对象静默地替换相对于SAAJ要求错误类型的对象。 这些替换不能导致树的逻辑结构发生变化,所以从DOM API的角度来看,树将保持不变。 然而,树的物理组成将会发生变化,因此对被替换的节点的引用将引用不再是树的一部分的节点。 如果SAAJ API不需要,那么SAAJ API不允许进行这些替换,因此替换对象永远不会被以后的SAAJ API调用替代。
实际上这意味着在使用DOM API处理树之后,开始使用SAAJ API的应用程序必须假定该树已被转换为所有SAAJ树,并且对已获得的树中的对象的任何引用使用DOM API不再有效。 从SAAJ API切换到DOM API不允许导致无效引用,也不会专门使用SAAJ API。 它只是在特定的SAAJ树上使用DOM API切换到使用导致无效引用风险的SAAJ API。
发现SAAJ实施
在SAAJ API中定义了几个工厂来发现和加载特定的实现:
前三个定义newInstance()
方法,它使用通用的查找过程来确定实现类:
- 检查是否设置了与工厂类名称相同的系统属性(例如
javax.xml.soap.SOAPFactory
)。 如果这样的属性存在,那么它的值被假定为实现类的完全限定名。 这个查询阶段使得每个JVM覆盖SAAJ实现。 - 使用配置文件“jaxm.properties”。 该文件采用标准
Properties
格式,通常位于Java安装的conf
目录中。 它包含实现类的完全限定名称,其中键是上面定义的系统属性。 - 使用由
ServiceLoader
类定义的服务提供商加载工具尝试使用default loading mechanism查找和加载服务的实现 。 - 最后,如果上述所有步骤失败,则使用
SAAJMetaFactory
实例来定位特定实现(对于MessageFactory
和SOAPFactory
)或使用平台默认实现(SOAPConnectionFactory
)。 每当使用SAAJMetaFactory
时 ,执行其获取实际实例的查找过程。
-
接口摘要 接口 描述 Detail 一个用于DetailEntry
对象的容器。DetailEntry 一个Detail
对象的内容,给出一个SOAPFault
对象的详细信息。Name XML名称的表示形式。Node XML文档中节点(元素)的表示。SOAPBody 表示SOAP消息中SOAP主体元素内容的对象。SOAPBodyElement 甲SOAPBodyElement
对象表示内容SOAPBody
对象。SOAPConstants 关于SOAP协议的常量定义。SOAPElement 表示SOAP消息的元素的对象,SOAP消息被允许但不是由SOAP规范特别规定。SOAPEnvelope 用于SOAPHeader的容器和SOAPBody部分的一个SOAPPart
对象。SOAPFault SOAPBody
对象中包含错误和/或状态信息的元素。SOAPFaultElement 内容在SOAPFault
对象中的表示。SOAPHeader SOAP头元素的表示。SOAPHeaderElement 表示SOAP信封SOAP头部分内容的对象。Text 值为文本的节点的表示。 -
类摘要 Class 描述 AttachmentPart 一个附件到一个SOAPMessage
对象。MessageFactory 创建SOAPMessage
对象的工厂。MimeHeader 一个存储MIME头名称及其值的对象。MimeHeaders 一个MimeHeader
对象的容器,它们表示消息的MIME部分中出现的MIME头。SAAJMetaFactory 在SAAJ API中定义的工厂的实现类的接入点。SAAJResult 作为SAAJ树形式的JAXP转换或JAXB编组的结果的持有者。SOAPConnection 客户端可以将消息直接发送到远程方(例如由URL表示)的点对点连接。SOAPConnectionFactory 一个创建SOAPConnection
对象的工厂。SOAPElementFactory Deprecated. - 使用javax.xml.soap.SOAPFactory
创建SOAPElements。SOAPFactory SOAPFactory
是用于创建SOAP XML树中存在的各种对象的工厂。SOAPMessage 所有SOAP消息的根类。SOAPPart 用于SOAPMessage
对象的SOAP特定部分的SOAPMessage
。 -
异常摘要 异常 描述 SOAPException 发生SOAP异常发生的异常。