JavaTM Platform
Standard Ed. 6

javax.xml.soap
接口 SOAPFault

所有超级接口:
Element, Node, SOAPBodyElement, SOAPElement

public interface SOAPFault
extends SOAPBodyElement

SOAPBody 对象中的元素,包含错误和/或状态信息。此信息可能与 SOAPMessage 对象中的错误相关,也可能与和消息本身的内容无关的问题相关。与消息本身无关的问题通常是处理过程中的错误,如无法与上游服务器通信。

SOAPFault 具有 SOAP 1.1 或 SOAP 1.2 规范中定义的子元素,具体取决于创建 MessageFactory 实例时指定的 protocol


字段摘要
 
从接口 org.w3c.dom.Node 继承的字段
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
 
方法摘要
 Detail addDetail()
          创建可选的 Detail 对象,并将其设置为此 SOAPFault 对象的 Detail 对象。
 void addFaultReasonText(String text, Locale locale)
          追加或替换包含指定文本消息的 Reason Text 项,以及从 locale 派生的 xml:lang
 void appendFaultSubcode(QName subcode)
          将 Subcode 添加到此 SOAPFault 包含的 Subcode 序列的末尾。
 Detail getDetail()
          返回此 SOAPFault 对象的可选 detail 元素。
 String getFaultActor()
          获取此 SOAPFault 对象的错误参与者。
 String getFaultCode()
          获取此 SOAPFault 对象的错误代码。
 Name getFaultCodeAsName()
          以 SAAJ Name 对象形式获取此 SOAPFault 对象的强制性 SOAP 1.1 错误代码。
 QName getFaultCodeAsQName()
          以 QName 对象形式获取此 SOAPFault 对象的错误代码。
 String getFaultNode()
          返回此 SOAPFault 对象的可选 Node 元素值。
 Iterator getFaultReasonLocales()
          返回一个 Iterator,它可以在与 Reason Text 项关联的 Locale 独特序列上进行迭代。
 String getFaultReasonText(Locale locale)
          返回与给定 Locale 关联的 Reason Text。
 Iterator getFaultReasonTexts()
          返回一个 Iterator,它可以在包含此 SOAPFault 所有 Reason Text 项的 String 对象序列上进行迭代。
 String getFaultRole()
          返回此 SOAPFault 对象的可选 Role 元素值。
 String getFaultString()
          获取此 SOAPFault 对象的错误字符串。
 Locale getFaultStringLocale()
          获取此 SOAPFault 对象错误字符串的语言环境。
 Iterator getFaultSubcodes()
          以 QNames 迭代器形式获取此 SOAPFault 的 Subcode。
 boolean hasDetail()
          如果此 SOAPFault 有一个 Detail 子元素,则返回 true,否则返回 false。
 void removeAllFaultSubcodes()
          移除此 SOAPFault 可能包含的任何 Subcode。
 void setFaultActor(String faultActor)
          使用给定的错误参与者 (actor) 设置此 SOAPFault 对象。
 void setFaultCode(Name faultCodeQName)
          使用给定的错误代码设置此 SOAPFault 对象。
 void setFaultCode(QName faultCodeQName)
          使用给定的错误代码设置此 SOAPFault 对象。
 void setFaultCode(String faultCode)
          使用给定的错误代码设置此 SOAPFault 对象。
 void setFaultNode(String uri)
          创建或替换此 SOAPFault 对象的任何现有 Node 元素。
 void setFaultRole(String uri)
          创建或替换此 SOAPFault 对象的任何现有 Role 元素。
 void setFaultString(String faultString)
          将此 SOAPFault 对象的错误字符串设定为给定字符串。
 void setFaultString(String faultString, Locale locale)
          将此 SOAPFault 对象的错误字符串设定为给定字符串,并本地化为给定语言环境。
 
从接口 javax.xml.soap.SOAPElement 继承的方法
addAttribute, addAttribute, addChildElement, addChildElement, addChildElement, addChildElement, addChildElement, addChildElement, addNamespaceDeclaration, addTextNode, createQName, getAllAttributes, getAllAttributesAsQNames, getAttributeValue, getAttributeValue, getChildElements, getChildElements, getChildElements, getElementName, getElementQName, getEncodingStyle, getNamespacePrefixes, getNamespaceURI, getVisibleNamespacePrefixes, removeAttribute, removeAttribute, removeContents, removeNamespaceDeclaration, setElementQName, setEncodingStyle
 
从接口 javax.xml.soap.Node 继承的方法
detachNode, getParentElement, getValue, recycleNode, setParentElement, setValue
 
从接口 org.w3c.dom.Element 继承的方法
getAttribute, getAttributeNode, getAttributeNodeNS, getAttributeNS, getElementsByTagName, getElementsByTagNameNS, getSchemaTypeInfo, getTagName, hasAttribute, hasAttributeNS, removeAttribute, removeAttributeNode, removeAttributeNS, setAttribute, setAttributeNode, setAttributeNodeNS, setAttributeNS, setIdAttribute, setIdAttributeNode, setIdAttributeNS
 
从接口 org.w3c.dom.Node 继承的方法
appendChild, cloneNode, compareDocumentPosition, getAttributes, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData
 

方法详细信息

setFaultCode

void setFaultCode(Name faultCodeQName)
                  throws SOAPException
使用给定的错误代码设置此 SOAPFault 对象。

给出有关错误信息的错误代码是在 SOAP 1.1 规范中定义的。错误代码是强制性的 (mandatory),必须是 QName 类型。此方法提供设置错误代码的便捷方式。例如,

SOAPEnvelope se = ...;
// Create a qualified name in the SOAP namespace with a localName
// of "Client".Note that prefix parameter is optional and is null
// here which causes the implementation to use an appropriate prefix.
Name qname = se.createName("Client", null,
SOAPConstants.URI_NS_SOAP_ENVELOPE);
SOAPFault fault = ...;
fault.setFaultCode(qname);
 
相比 setFaultCode(String) 方法,最好优先使用此方法。

参数:
faultCodeQName - 给出要设置的错误代码的 Name 对象。它必须是限定于名称空间的。
抛出:
SOAPException - 如果在将 faultcode 元素添加到底层 XML 树时出现错误。
从以下版本开始:
SAAJ 1.2
另请参见:
getFaultCodeAsName()

setFaultCode

void setFaultCode(QName faultCodeQName)
                  throws SOAPException
使用给定的错误代码设置此 SOAPFault 对象。相比 setFaultCode(Name) 方法,最好优先使用此方法。

参数:
faultCodeQName - 提供要设置的错误代码的 QName 对象。它必须是限定于名称空间的。
抛出:
SOAPException - 如果在将 faultcode 元素添加到底层 XML 树时出现错误。
从以下版本开始:
SAAJ 1.3
另请参见:
getFaultCodeAsQName(), setFaultCode(Name), getFaultCodeAsQName()

setFaultCode

void setFaultCode(String faultCode)
                  throws SOAPException
使用给定的错误代码设置此 SOAPFault 对象。

给出有关错误信息的错误代码是在 SOAP 1.1 规范中定义的。此元素在 SOAP 1.1 中是强制性的。因为错误代码要求是 QName,所以最好使用此方法的 setFaultCode(Name) 形式。

参数:
faultCode - 提供要设置的错误代码的 String。它必须是 "prefix:localName" 形式,其中前缀是用名称空间声明定义的。
抛出:
SOAPException - 如果在将 faultCode 添加到底层 XML 树时出现错误。
另请参见:
setFaultCode(Name), getFaultCode(), SOAPElement.addNamespaceDeclaration(java.lang.String, java.lang.String)

getFaultCodeAsName

Name getFaultCodeAsName()
以 SAAJ Name 对象形式获取此 SOAPFault 对象的强制性 SOAP 1.1 错误代码。SOAP 1.1 规范要求 "faultcode" 元素的值为 QName 类型。此方法以 SAAJ Name 对象的形式返回 QName 形式的元素内容。应该使用此方法来代替 getFaultCode 方法,因为它允许应用程序方便地访问名称空间名,而不需要其他解析。

返回:
表示错误代码的 Name
从以下版本开始:
SAAJ 1.2
另请参见:
setFaultCode(Name)

getFaultCodeAsQName

QName getFaultCodeAsQName()
QName 对象形式获取此 SOAPFault 对象的错误代码。

返回:
表示错误代码的 QName
从以下版本开始:
SAAJ 1.3
另请参见:
setFaultCode(QName)

getFaultSubcodes

Iterator getFaultSubcodes()
QNames 迭代器形式获取此 SOAPFault 的 Subcode。

返回:
访问 QNames 序列的 IteratorIterator 不应支持可选的 remove 方法。Subcode 返回的顺序反映了 Subcode 在错误代码中从上到下的层次结构。
抛出:
UnsupportedOperationException - 如果此消息不支持 SOAP 1.2 定义的 Subcode。
从以下版本开始:
SAAJ 1.3

removeAllFaultSubcodes

void removeAllFaultSubcodes()
移除此 SOAPFault 可能包含的任何 Subcode。在调用 appendFaultSubcode 之前,对 getFaultSubcodes 的后续调用将返回空迭代器。

抛出:
UnsupportedOperationException - 如果此消息不支持 SOAP 1.2 定义的 Subcode。
从以下版本开始:
SAAJ 1.3

appendFaultSubcode

void appendFaultSubcode(QName subcode)
                        throws SOAPException
将 Subcode 添加到此 SOAPFault 包含的 Subcode 序列的末尾。SOAP 1.2 中引入的 Subcode 由递归子元素序列表示,该序列由 SOAP Fault 的强制 Code 子元素排列形成。

参数:
subcode - 包含 Subcode 值的 QName。
抛出:
SOAPException - 如果在设置 Subcode 时出现错误
UnsupportedOperationException - 如果此消息不支持 SOAP 1.2 定义的 Subcode。
从以下版本开始:
SAAJ 1.3

getFaultCode

String getFaultCode()
获取此 SOAPFault 对象的错误代码。

返回:
带有错误代码的 String
另请参见:
getFaultCodeAsName(), setFaultCode(javax.xml.soap.Name)

setFaultActor

void setFaultActor(String faultActor)
                   throws SOAPException
使用给定的错误参与者 (actor) 设置此 SOAPFault 对象。

错误参与者是消息路径中导致发生错误的接收方。

如果此 SOAPFault 支持 SOAP 1.2,则此调用等效于 setFaultRole(String)

参数:
faultActor - 一个 String,标识导致此 SOAPFault 对象的参与者
抛出:
SOAPException - 如果在将 faultActor 添加到底层 XML 树时出现错误。
另请参见:
getFaultActor()

getFaultActor

String getFaultActor()
获取此 SOAPFault 对象的错误参与者。

如果此 SOAPFault 支持 SOAP 1.2,那么此调用等效于 getFaultRole()

返回:
一个 String,给出消息路径中导致此 SOAPFault 对象的参与者
另请参见:
setFaultActor(java.lang.String)

setFaultString

void setFaultString(String faultString)
                    throws SOAPException
将此 SOAPFault 对象的错误字符串设定为给定字符串。

如果此 SOAPFault 是支持 SOAP 1.2 的消息的一部分,则此调用等效于:

addFaultReasonText(faultString, Locale.getDefault());
 

参数:
faultString - 一个 String,给出对错误的解释
抛出:
SOAPException - 如果在将 faultString 添加到底层 XML 树时出现错误。
另请参见:
getFaultString()

setFaultString

void setFaultString(String faultString,
                    Locale locale)
                    throws SOAPException
将此 SOAPFault 对象的错误字符串设定为给定字符串,并本地化为给定语言环境。

如果此 SOAPFault 是支持 SOAP 1.2 的消息的一部分,则此调用等效于:

addFaultReasonText(faultString, locale);
 

参数:
faultString - 一个 String,给出对错误的解释
locale - 一个 Locale 对象,指示 faultString 的本地语言
抛出:
SOAPException - 如果在将 faultString 添加到底层 XML 树时出现错误。
从以下版本开始:
SAAJ 1.2
另请参见:
getFaultString()

getFaultString

String getFaultString()
获取此 SOAPFault 对象的错误字符串。

如果此 SOAPFault 是支持 SOAP 1.2 的消息的一部分,则此调用等效于:

String reason = null;
try {
reason = (String) getFaultReasonTexts().next();
} catch (SOAPException e) {}
return reason;
 

返回:
一个 String,给出对错误的解释
另请参见:
setFaultString(String), setFaultString(String, Locale)

getFaultStringLocale

Locale getFaultStringLocale()
获取此 SOAPFault 对象错误字符串的语言环境。

如果此 SOAPFault 是支持 SOAP 1.2 的消息的一部分,则此调用等效于:

Locale locale = null;
try {
locale = (Locale) getFaultReasonLocales().next();
} catch (SOAPException e) {}
return locale;
 

返回:
一个 Locale 对象,指示默认字符串的本地语言,如果没有指定语言环境,则返回 null
从以下版本开始:
SAAJ 1.2
另请参见:
setFaultString(String, Locale)

hasDetail

boolean hasDetail()
如果此 SOAPFault 有一个 Detail 子元素,则返回 true,否则返回 false。与 (getDetail()!=null) 等效。

返回:
如果此 SOAPFault 有一个 Detail 子元素,则返回 true,否则返回 false。
从以下版本开始:
SAAJ 1.3

getDetail

Detail getDetail()
返回此 SOAPFault 对象的可选 detail 元素。

Detail 对象携带了特定于应用程序的错误信息,如果该错误信息是 SOAP 1.1 Fault,则其范围限于 SOAPBodyElement 对象中的错误。

返回:
带有特定于应用程序的错误信息的 Detail 对象(如果存在);如果不存在此类对象,则返回 null。

addDetail

Detail addDetail()
                 throws SOAPException
创建可选的 Detail 对象,并将其设置为此 SOAPFault 对象的 Detail 对象。

当错误已包含详细信息时,添加详细信息是非法的。因此,此方法应该在移除了现有的详细信息之后调用。

返回:
新的 Detail 对象
抛出:
SOAPException - 如果此 SOAPFault 对象已包含一个有效的 Detail 对象

getFaultReasonLocales

Iterator getFaultReasonLocales()
                               throws SOAPException
返回一个 Iterator,它可以在与 Reason Text 项关联的 Locale 独特序列上进行迭代。这些 Locale 都可以用于对 getFaultReasonText 的调用,以便获取 Reason Text 字符串的本地化版本。

返回:
一个 Iterator,可在与 Reason Text 项关联的 Locale 对象序列上进行迭代。
抛出:
SOAPException - 如果检索错误 Reason 语言环境时出现错误。
UnsupportedOperationException - 如果此消息不支持 SOAP 1.2 定义的 Fault Reason。
从以下版本开始:
SAAJ 1.3

getFaultReasonTexts

Iterator getFaultReasonTexts()
                             throws SOAPException
返回一个 Iterator,它可以在包含此 SOAPFault 所有 Reason Text 项的 String 对象序列上进行迭代。

返回:
一个 Iterator,可在 env:Fault/env:Reason/env:Text 项上进行迭代。
抛出:
SOAPException - 如果检索错误 Reason 文本时出现错误。
UnsupportedOperationException - 如果此消息不支持 SOAP 1.2 定义的 Fault Reason。
从以下版本开始:
SAAJ 1.3

getFaultReasonText

String getFaultReasonText(Locale locale)
                          throws SOAPException
返回与给定 Locale 关联的 Reason Text。如果存在一个以上这种 Reason Text,则返回第一个与 Text 匹配的 Reason Text。

参数:
locale - 本地化 Reason Text 时需要的 Locale
返回:
locale 关联的 Reason Text
抛出:
SOAPException - 如果针对指定语言环境检索错误 Reason 文本时出现错误。
UnsupportedOperationException - 如果此消息不支持 SOAP 1.2 定义的 Fault Reason。
从以下版本开始:
SAAJ 1.3
另请参见:
getFaultString()

addFaultReasonText

void addFaultReasonText(String text,
                        Locale locale)
                        throws SOAPException
追加或替换包含指定文本消息的 Reason Text 项,以及从 locale 派生的 xml:lang。如果已经存在带有此 xml:lang 的 Reason Text 项,则其文本值将被 text 替换。locale 参数不应为 null

代码示例:

SOAPFault fault = ...;
fault.addFaultReasonText("Version Mismatch", Locale.ENGLISH);
 

参数:
text - 原因消息字符串
locale - 表示消息语言环境的 Locale 对象
抛出:
SOAPException - 如果在添加 Reason 文本时出现错误,或者传递的 localenull
UnsupportedOperationException - 如果此消息不支持 SOAP 1.2 定义的 Fault Reason。
从以下版本开始:
SAAJ 1.3

getFaultNode

String getFaultNode()
返回此 SOAPFault 对象的可选 Node 元素值。Node 元素在 SOAP 1.2 中是可选的。

返回:
String 形式的 env:Fault/env:Node 元素的内容,如果没有此类内容,则返回 null
抛出:
UnsupportedOperationException - 如果此消息不支持 SOAP 1.2 定义的 Fault Node。
从以下版本开始:
SAAJ 1.3

setFaultNode

void setFaultNode(String uri)
                  throws SOAPException
创建或替换此 SOAPFault 对象的任何现有 Node 元素。Node 元素在 SOAP 1.2 中是可选的。

抛出:
SOAPException - 如果在设置此 SOAPFault 对象的 Node 时出现错误。
UnsupportedOperationException - 如果此消息不支持 SOAP 1.2 定义的 Fault Node。
从以下版本开始:
SAAJ 1.3

getFaultRole

String getFaultRole()
返回此 SOAPFault 对象的可选 Role 元素值。Role 元素在 SOAP 1.2 中是可选的。

返回:
String 形式的 env:Fault/env:Role 元素的内容,如果没有此类内容,则返回 null
抛出:
UnsupportedOperationException - 如果此消息不支持 SOAP 1.2 定义的 Fault Role。
从以下版本开始:
SAAJ 1.3

setFaultRole

void setFaultRole(String uri)
                  throws SOAPException
创建或替换此 SOAPFault 对象的任何现有 Role 元素。Role 元素在 SOAP 1.2 中是可选的。

参数:
uri - Role 的 URI
抛出:
SOAPException - 如果在设置此 SOAPFault 对象的 Role 时出现错误。
UnsupportedOperationException - 如果此消息不支持 SOAP 1.2 定义的 Fault Role。
从以下版本开始:
SAAJ 1.3

JavaTM Platform
Standard Ed. 6

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策