public interface SOAPFault
SOAPBody
对象中的元素,包含错误和/或状态信息。此信息可能与 SOAPMessage
对象中的错误相关,也可能与和消息本身的内容无关的问题相关。与消息本身无关的问题通常是处理过程中的错误,如无法与上游服务器通信。
SOAPFault
具有 SOAP 1.1 或 SOAP 1.2 规范中定义的子元素,具体取决于创建 MessageFactory
实例时指定的 protocol
。
字段摘要 |
---|
方法摘要 | |
---|---|
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.Node 继承的方法 |
---|
detachNode, getParentElement, getValue, recycleNode, setParentElement, setValue |
方法详细信息 |
---|
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 树时出现错误。
getFaultCodeAsName()
void setFaultCode(QName faultCodeQName) throws SOAPException
SOAPFault
对象。相比
setFaultCode(Name)
方法,最好优先使用此方法。
faultCodeQName
- 提供要设置的错误代码的
QName
对象。它必须是限定于名称空间的。
SOAPException
- 如果在将
faultcode
元素添加到底层 XML 树时出现错误。
getFaultCodeAsQName()
,
setFaultCode(Name)
,
getFaultCodeAsQName()
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)
Name getFaultCodeAsName()
Name
对象形式获取此
SOAPFault
对象的强制性 SOAP 1.1 错误代码。SOAP 1.1 规范要求 "faultcode" 元素的值为 QName 类型。此方法以 SAAJ Name 对象的形式返回 QName 形式的元素内容。应该使用此方法来代替
getFaultCode
方法,因为它允许应用程序方便地访问名称空间名,而不需要其他解析。
Name
setFaultCode(Name)
QName getFaultCodeAsQName()
QName
对象形式获取此
SOAPFault
对象的错误代码。
QName
setFaultCode(QName)
Iterator getFaultSubcodes()
QNames
迭代器形式获取此
SOAPFault
的 Subcode。
QNames
序列的
Iterator
此
Iterator
不应支持可选的
remove
方法。Subcode 返回的顺序反映了 Subcode 在错误代码中从上到下的层次结构。
UnsupportedOperationException
- 如果此消息不支持 SOAP 1.2 定义的 Subcode。
void removeAllFaultSubcodes()
SOAPFault
可能包含的任何 Subcode。在调用
appendFaultSubcode
之前,对
getFaultSubcodes
的后续调用将返回空迭代器。
UnsupportedOperationException
- 如果此消息不支持 SOAP 1.2 定义的 Subcode。
void appendFaultSubcode(QName subcode) throws SOAPException
SOAPFault
包含的 Subcode 序列的末尾。SOAP 1.2 中引入的 Subcode 由递归子元素序列表示,该序列由 SOAP Fault 的强制 Code 子元素排列形成。
subcode
- 包含 Subcode 值的 QName。
SOAPException
- 如果在设置 Subcode 时出现错误
UnsupportedOperationException
- 如果此消息不支持 SOAP 1.2 定义的 Subcode。
String getFaultCode()
SOAPFault
对象的错误代码。
String
getFaultCodeAsName()
,
setFaultCode(javax.xml.soap.Name)
void setFaultActor(String faultActor) throws SOAPException
SOAPFault
对象。
错误参与者是消息路径中导致发生错误的接收方。
如果此 SOAPFault
支持 SOAP 1.2,则此调用等效于 setFaultRole(String)
faultActor
- 一个
String
,标识导致此
SOAPFault
对象的参与者
SOAPException
- 如果在将
faultActor
添加到底层 XML 树时出现错误。
getFaultActor()
String getFaultActor()
SOAPFault
对象的错误参与者。
如果此 SOAPFault
支持 SOAP 1.2,那么此调用等效于 getFaultRole()
。
String
,给出消息路径中导致此
SOAPFault
对象的参与者
setFaultActor(java.lang.String)
void setFaultString(String faultString) throws SOAPException
SOAPFault
对象的错误字符串设定为给定字符串。
如果此 SOAPFault
是支持 SOAP 1.2 的消息的一部分,则此调用等效于:
addFaultReasonText(faultString, Locale.getDefault());
faultString
- 一个
String
,给出对错误的解释
SOAPException
- 如果在将
faultString
添加到底层 XML 树时出现错误。
getFaultString()
void setFaultString(String faultString, Locale locale) throws SOAPException
SOAPFault
对象的错误字符串设定为给定字符串,并本地化为给定语言环境。
如果此 SOAPFault
是支持 SOAP 1.2 的消息的一部分,则此调用等效于:
addFaultReasonText(faultString, locale);
faultString
- 一个
String
,给出对错误的解释
locale
- 一个
Locale
对象,指示
faultString
的本地语言
SOAPException
- 如果在将
faultString
添加到底层 XML 树时出现错误。
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)
Locale getFaultStringLocale()
SOAPFault
对象错误字符串的语言环境。
如果此 SOAPFault
是支持 SOAP 1.2 的消息的一部分,则此调用等效于:
Locale locale = null; try { locale = (Locale) getFaultReasonLocales().next(); } catch (SOAPException e) {} return locale;
Locale
对象,指示默认字符串的本地语言,如果没有指定语言环境,则返回
null
setFaultString(String, Locale)
boolean hasDetail()
SOAPFault
有一个
Detail
子元素,则返回 true,否则返回 false。与
(getDetail()!=null)
等效。
SOAPFault
有一个
Detail
子元素,则返回 true,否则返回 false。
Detail getDetail()
SOAPFault
对象的可选 detail 元素。
Detail
对象携带了特定于应用程序的错误信息,如果该错误信息是 SOAP 1.1 Fault,则其范围限于 SOAPBodyElement
对象中的错误。
Detail
对象(如果存在);如果不存在此类对象,则返回 null。
Detail addDetail() throws SOAPException
Detail
对象,并将其设置为此
SOAPFault
对象的
Detail
对象。
当错误已包含详细信息时,添加详细信息是非法的。因此,此方法应该在移除了现有的详细信息之后调用。
Detail
对象
SOAPException
- 如果此
SOAPFault
对象已包含一个有效的
Detail
对象
Iterator getFaultReasonLocales() throws SOAPException
Iterator
,它可以在与 Reason Text 项关联的
Locale
独特序列上进行迭代。这些
Locale
都可以用于对
getFaultReasonText
的调用,以便获取 Reason Text 字符串的本地化版本。
Iterator
,可在与 Reason Text 项关联的
Locale
对象序列上进行迭代。
SOAPException
- 如果检索错误 Reason 语言环境时出现错误。
UnsupportedOperationException
- 如果此消息不支持 SOAP 1.2 定义的 Fault Reason。
Iterator getFaultReasonTexts() throws SOAPException
Iterator
,它可以在包含此
SOAPFault
所有 Reason Text 项的
String
对象序列上进行迭代。
Iterator
,可在 env:Fault/env:Reason/env:Text 项上进行迭代。
SOAPException
- 如果检索错误 Reason 文本时出现错误。
UnsupportedOperationException
- 如果此消息不支持 SOAP 1.2 定义的 Fault Reason。
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。
getFaultString()
void addFaultReasonText(String text, Locale locale) throws SOAPException
locale
派生的
xml:lang。如果已经存在带有此
xml:lang 的 Reason Text 项,则其文本值将被
text
替换。
locale
参数不应为
null
。
代码示例:
SOAPFault fault = ...; fault.addFaultReasonText("Version Mismatch", Locale.ENGLISH);
text
- 原因消息字符串
locale
- 表示消息语言环境的 Locale 对象
SOAPException
- 如果在添加 Reason 文本时出现错误,或者传递的
locale
为
null
。
UnsupportedOperationException
- 如果此消息不支持 SOAP 1.2 定义的 Fault Reason。
String getFaultNode()
SOAPFault
对象的可选 Node 元素值。Node 元素在 SOAP 1.2 中是可选的。
null
UnsupportedOperationException
- 如果此消息不支持 SOAP 1.2 定义的 Fault Node。
void setFaultNode(String uri) throws SOAPException
SOAPFault
对象的任何现有 Node 元素。Node 元素在 SOAP 1.2 中是可选的。
SOAPException
- 如果在设置此
SOAPFault
对象的 Node 时出现错误。
UnsupportedOperationException
- 如果此消息不支持 SOAP 1.2 定义的 Fault Node。
String getFaultRole()
SOAPFault
对象的可选 Role 元素值。Role 元素在 SOAP 1.2 中是可选的。
null
UnsupportedOperationException
- 如果此消息不支持 SOAP 1.2 定义的 Fault Role。
void setFaultRole(String uri) throws SOAPException
SOAPFault
对象的任何现有 Role 元素。Role 元素在 SOAP 1.2 中是可选的。
uri
- Role 的 URI
SOAPException
- 如果在设置此
SOAPFault
对象的 Role 时出现错误。
UnsupportedOperationException
- 如果此消息不支持 SOAP 1.2 定义的 Fault Role。