SOAPFault (Java Platform SE 8 )
Keywords: javax.xml.soap.SOAPFault interface
Date: 2026-07-22

javax.xml.soap

## Interface SOAPFault

- All Superinterfaces:
    Element, Node, SOAPBodyElement, SOAPElement

      public interface SOAPFault
      extends SOAPBodyElement

  An element in the `SOAPBody` object that contains error and/or status information. This information may relate to errors in the `SOAPMessage` object or to problems that are not related to the content in the message itself. Problems not related to the message itself are generally errors in processing, such as the inability to communicate with an upstream server.

  Depending on the `protocol` specified while creating the `MessageFactory` instance, a `SOAPFault` has sub-elements as defined in the SOAP 1.1/SOAP 1.2 specification.

- - ### Field Summary

    - ### Fields inherited from interface 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`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `Detail` | `addDetail()` Creates an optional `Detail` object and sets it as the `Detail` object for this `SOAPFault` object.
    `void` | `addFaultReasonText(String text, Locale locale)` Appends or replaces a Reason Text item containing the specified text message and an xml:lang derived from `locale`.
    `void` | `appendFaultSubcode(QName subcode)` Adds a Subcode to the end of the sequence of Subcodes contained by this `SOAPFault`.
    `Detail` | `getDetail()` Returns the optional detail element for this `SOAPFault` object.
    `String` | `getFaultActor()` Gets the fault actor for this `SOAPFault` object.
    `String` | `getFaultCode()` Gets the fault code for this `SOAPFault` object.
    `Name` | `getFaultCodeAsName()` Gets the mandatory SOAP 1.1 fault code for this `SOAPFault` object as a SAAJ `Name` object.
    `QName` | `getFaultCodeAsQName()` Gets the fault code for this `SOAPFault` object as a `QName` object.
    `String` | `getFaultNode()` Returns the optional Node element value for this `SOAPFault` object.
    `Iterator` | `getFaultReasonLocales()` Returns an `Iterator` over a distinct sequence of `Locale`s for which there are associated Reason Text items.
    `String` | `getFaultReasonText(Locale locale)` Returns the Reason Text associated with the given `Locale`.
    `Iterator` | `getFaultReasonTexts()` Returns an `Iterator` over a sequence of `String` objects containing all of the Reason Text items for this `SOAPFault`.
    `String` | `getFaultRole()` Returns the optional Role element value for this `SOAPFault` object.
    `String` | `getFaultString()` Gets the fault string for this `SOAPFault` object.
    `Locale` | `getFaultStringLocale()` Gets the locale of the fault string for this `SOAPFault` object.
    `Iterator` | `getFaultSubcodes()` Gets the Subcodes for this `SOAPFault` as an iterator over `QNames`.
    `boolean` | `hasDetail()` Returns true if this `SOAPFault` has a `Detail` subelement and false otherwise.
    `void` | `removeAllFaultSubcodes()` Removes any Subcodes that may be contained by this `SOAPFault`.
    `void` | `setFaultActor(String faultActor)` Sets this `SOAPFault` object with the given fault actor.
    `void` | `setFaultCode(Name faultCodeQName)` Sets this `SOAPFault` object with the given fault code.
    `void` | `setFaultCode(QName faultCodeQName)` Sets this `SOAPFault` object with the given fault code.
    `void` | `setFaultCode(String faultCode)` Sets this `SOAPFault` object with the give fault code.
    `void` | `setFaultNode(String uri)` Creates or replaces any existing Node element value for this `SOAPFault` object.
    `void` | `setFaultRole(String uri)` Creates or replaces any existing Role element value for this `SOAPFault` object.
    `void` | `setFaultString(String faultString)` Sets the fault string for this `SOAPFault` object to the given string.
    `void` | `setFaultString(String faultString, Locale locale)` Sets the fault string for this `SOAPFault` object to the given string and localized to the given locale.

    - ### Methods inherited from interface 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`

    - ### Methods inherited from interface javax.xml.soap.Node

      `detachNode, getParentElement, getValue, recycleNode, setParentElement, setValue`

    - ### Methods inherited from interface org.w3c.dom.Element

      `getAttribute, getAttributeNode, getAttributeNodeNS, getAttributeNS, getElementsByTagName, getElementsByTagNameNS, getSchemaTypeInfo, getTagName, hasAttribute, hasAttributeNS, removeAttribute, removeAttributeNode, removeAttributeNS, setAttribute, setAttributeNode, setAttributeNodeNS, setAttributeNS, setIdAttribute, setIdAttributeNode, setIdAttributeNS`

    - ### Methods inherited from interface 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`

- - ### Method Detail

    - #### setFaultCode

          void setFaultCode(Name faultCodeQName)
                     throws SOAPException

      Sets this `SOAPFault` object with the given fault code.

      Fault codes, which give information about the fault, are defined in the SOAP 1.1 specification. A fault code is mandatory and must be of type `Name`. This method provides a convenient way to set a fault code. For example,

           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);

      It is preferable to use this method over `setFaultCode(String)`.
      Parameters:
        `faultCodeQName` - a `Name` object giving the fault code to be set. It must be namespace qualified.
      Throws:
        `SOAPException` - if there was an error in adding the faultcode element to the underlying XML tree.
      Since:
        SAAJ 1.2
      See Also:
        `getFaultCodeAsName()`

    - #### setFaultCode

          void setFaultCode(QName faultCodeQName)
                     throws SOAPException

      Sets this `SOAPFault` object with the given fault code. It is preferable to use this method over `setFaultCode(Name)`.
      Parameters:
        `faultCodeQName` - a `QName` object giving the fault code to be set. It must be namespace qualified.
      Throws:
        `SOAPException` - if there was an error in adding the `faultcode` element to the underlying XML tree.
      Since:
        SAAJ 1.3
      See Also:
        `getFaultCodeAsQName()`, `setFaultCode(Name)`, `getFaultCodeAsQName()`

    - #### setFaultCode

          void setFaultCode(String faultCode)
                     throws SOAPException

      Sets this `SOAPFault` object with the give fault code.

      Fault codes, which given information about the fault, are defined in the SOAP 1.1 specification. This element is mandatory in SOAP 1.1. Because the fault code is required to be a QName it is preferable to use the `setFaultCode(Name)` form of this method.

      Parameters:
        `faultCode` - a `String` giving the fault code to be set. It must be of the form "prefix:localName" where the prefix has been defined in a namespace declaration.
      Throws:
        `SOAPException` - if there was an error in adding the `faultCode` to the underlying XML tree.
      See Also:
        `setFaultCode(Name)`, `getFaultCode()`, `SOAPElement.addNamespaceDeclaration(java.lang.String, java.lang.String)`

    - #### getFaultCodeAsName

          Name getFaultCodeAsName()

      Gets the mandatory SOAP 1.1 fault code for this `SOAPFault` object as a SAAJ `Name` object. The SOAP 1.1 specification requires the value of the "faultcode" element to be of type QName. This method returns the content of the element as a QName in the form of a SAAJ Name object. This method should be used instead of the `getFaultCode` method since it allows applications to easily access the namespace name without additional parsing.
      Returns:
        a `Name` representing the faultcode
      Since:
        SAAJ 1.2
      See Also:
        `setFaultCode(Name)`

    - #### getFaultCodeAsQName

          QName getFaultCodeAsQName()

      Gets the fault code for this `SOAPFault` object as a `QName` object.
      Returns:
        a `QName` representing the faultcode
      Since:
        SAAJ 1.3
      See Also:
        `setFaultCode(QName)`

    - #### getFaultSubcodes

          Iterator getFaultSubcodes()

      Gets the Subcodes for this `SOAPFault` as an iterator over `QNames`.
      Returns:
        an `Iterator` that accesses a sequence of `QNames`. This `Iterator` should not support the optional `remove` method. The order in which the Subcodes are returned reflects the hierarchy of Subcodes present in the fault from top to bottom.
      Throws:
        `UnsupportedOperationException` - if this message does not support the SOAP 1.2 concept of Subcode.
      Since:
        SAAJ 1.3

    - #### removeAllFaultSubcodes

          void removeAllFaultSubcodes()

      Removes any Subcodes that may be contained by this `SOAPFault`. Subsequent calls to `getFaultSubcodes` will return an empty iterator until a call to `appendFaultSubcode` is made.
      Throws:
        `UnsupportedOperationException` - if this message does not support the SOAP 1.2 concept of Subcode.
      Since:
        SAAJ 1.3

    - #### appendFaultSubcode

          void appendFaultSubcode(QName subcode)
                           throws SOAPException

      Adds a Subcode to the end of the sequence of Subcodes contained by this `SOAPFault`. Subcodes, which were introduced in SOAP 1.2, are represented by a recursive sequence of subelements rooted in the mandatory Code subelement of a SOAP Fault.
      Parameters:
        `subcode` - a QName containing the Value of the Subcode.
      Throws:
        `SOAPException` - if there was an error in setting the Subcode
        `UnsupportedOperationException` - if this message does not support the SOAP 1.2 concept of Subcode.
      Since:
        SAAJ 1.3

    - #### getFaultCode

          String getFaultCode()

      Gets the fault code for this `SOAPFault` object.
      Returns:
        a `String` with the fault code
      See Also:
        `getFaultCodeAsName()`, `setFaultCode(javax.xml.soap.Name)`

    - #### setFaultActor

          void setFaultActor(String faultActor)
                      throws SOAPException

      Sets this `SOAPFault` object with the given fault actor.

      The fault actor is the recipient in the message path who caused the fault to happen.

      If this `SOAPFault` supports SOAP 1.2 then this call is equivalent to `setFaultRole(String)`

      Parameters:
        `faultActor` - a `String` identifying the actor that caused this `SOAPFault` object
      Throws:
        `SOAPException` - if there was an error in adding the `faultActor` to the underlying XML tree.
      See Also:
        `getFaultActor()`

    - #### getFaultActor

          String getFaultActor()

      Gets the fault actor for this `SOAPFault` object.

      If this `SOAPFault` supports SOAP 1.2 then this call is equivalent to `getFaultRole()`

      Returns:
        a `String` giving the actor in the message path that caused this `SOAPFault` object
      See Also:
        `setFaultActor(java.lang.String)`

    - #### setFaultString

          void setFaultString(String faultString)
                       throws SOAPException

      Sets the fault string for this `SOAPFault` object to the given string.

      If this `SOAPFault` is part of a message that supports SOAP 1.2 then this call is equivalent to:

                addFaultReasonText(faultString, Locale.getDefault());

      Parameters:
        `faultString` - a `String` giving an explanation of the fault
      Throws:
        `SOAPException` - if there was an error in adding the `faultString` to the underlying XML tree.
      See Also:
        `getFaultString()`

    - #### setFaultString

          void setFaultString(String faultString,
                              Locale locale)
                       throws SOAPException

      Sets the fault string for this `SOAPFault` object to the given string and localized to the given locale.

      If this `SOAPFault` is part of a message that supports SOAP 1.2 then this call is equivalent to:

                addFaultReasonText(faultString, locale);

      Parameters:
        `faultString` - a `String` giving an explanation of the fault
        `locale` - a `Locale` object indicating the native language of the `faultString`
      Throws:
        `SOAPException` - if there was an error in adding the `faultString` to the underlying XML tree.
      Since:
        SAAJ 1.2
      See Also:
        `getFaultString()`

    - #### getFaultString

          String getFaultString()

      Gets the fault string for this `SOAPFault` object.

      If this `SOAPFault` is part of a message that supports SOAP 1.2 then this call is equivalent to:

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

      Returns:
        a `String` giving an explanation of the fault
      See Also:
        `setFaultString(String)`, `setFaultString(String, Locale)`

    - #### getFaultStringLocale

          Locale getFaultStringLocale()

      Gets the locale of the fault string for this `SOAPFault` object.

      If this `SOAPFault` is part of a message that supports SOAP 1.2 then this call is equivalent to:

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

      Returns:
        a `Locale` object indicating the native language of the fault string or `null` if no locale was specified
      Since:
        SAAJ 1.2
      See Also:
        `setFaultString(String, Locale)`

    - #### hasDetail

          boolean hasDetail()

      Returns true if this `SOAPFault` has a `Detail` subelement and false otherwise. Equivalent to `(getDetail()!=null)`.
      Returns:
        true if this `SOAPFault` has a `Detail` subelement and false otherwise.
      Since:
        SAAJ 1.3

    - #### getDetail

          Detail getDetail()

      Returns the optional detail element for this `SOAPFault` object.

      A `Detail` object carries application-specific error information, the scope of the error information is restricted to faults in the `SOAPBodyElement` objects if this is a SOAP 1.1 Fault.

      Returns:
        a `Detail` object with application-specific error information if present, null otherwise

    - #### addDetail

          Detail addDetail()
                    throws SOAPException

      Creates an optional `Detail` object and sets it as the `Detail` object for this `SOAPFault` object.

      It is illegal to add a detail when the fault already contains a detail. Therefore, this method should be called only after the existing detail has been removed.

      Returns:
        the new `Detail` object
      Throws:
        `SOAPException` - if this `SOAPFault` object already contains a valid `Detail` object

    - #### getFaultReasonLocales

          Iterator getFaultReasonLocales()
                                  throws SOAPException

      Returns an `Iterator` over a distinct sequence of `Locale`s for which there are associated Reason Text items. Any of these `Locale`s can be used in a call to `getFaultReasonText` in order to obtain a localized version of the Reason Text string.
      Returns:
        an `Iterator` over a sequence of `Locale` objects for which there are associated Reason Text items.
      Throws:
        `SOAPException` - if there was an error in retrieving the fault Reason locales.
        `UnsupportedOperationException` - if this message does not support the SOAP 1.2 concept of Fault Reason.
      Since:
        SAAJ 1.3

    - #### getFaultReasonTexts

          Iterator getFaultReasonTexts()
                                throws SOAPException

      Returns an `Iterator` over a sequence of `String` objects containing all of the Reason Text items for this `SOAPFault`.
      Returns:
        an `Iterator` over env:Fault/env:Reason/env:Text items.
      Throws:
        `SOAPException` - if there was an error in retrieving the fault Reason texts.
        `UnsupportedOperationException` - if this message does not support the SOAP 1.2 concept of Fault Reason.
      Since:
        SAAJ 1.3

    - #### getFaultReasonText

          String getFaultReasonText(Locale locale)
                             throws SOAPException

      Returns the Reason Text associated with the given `Locale`. If more than one such Reason Text exists the first matching Text is returned
      Parameters:
        `locale` - -- the `Locale` for which a localized Reason Text is desired
      Returns:
        the Reason Text associated with `locale`
      Throws:
        `SOAPException` - if there was an error in retrieving the fault Reason text for the specified locale .
        `UnsupportedOperationException` - if this message does not support the SOAP 1.2 concept of Fault Reason.
      Since:
        SAAJ 1.3
      See Also:
        `getFaultString()`

    - #### addFaultReasonText

          void addFaultReasonText(String text,
                                  Locale locale)
                           throws SOAPException

      Appends or replaces a Reason Text item containing the specified text message and an xml:lang derived from `locale`. If a Reason Text item with this xml:lang already exists its text value will be replaced with `text`. The `locale` parameter should not be `null`

      Code sample:

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

      Parameters:
        `text` - -- reason message string
        `locale` - -- Locale object representing the locale of the message
      Throws:
        `SOAPException` - if there was an error in adding the Reason text or the `locale` passed was `null`.
        `UnsupportedOperationException` - if this message does not support the SOAP 1.2 concept of Fault Reason.
      Since:
        SAAJ 1.3

    - #### getFaultNode

          String getFaultNode()

      Returns the optional Node element value for this `SOAPFault` object. The Node element is optional in SOAP 1.2.
      Returns:
        Content of the env:Fault/env:Node element as a String or `null` if none
      Throws:
        `UnsupportedOperationException` - if this message does not support the SOAP 1.2 concept of Fault Node.
      Since:
        SAAJ 1.3

    - #### setFaultNode

          void setFaultNode(String uri)
                     throws SOAPException

      Creates or replaces any existing Node element value for this `SOAPFault` object. The Node element is optional in SOAP 1.2.
      Throws:
        `SOAPException` - if there was an error in setting the Node for this `SOAPFault` object.
        `UnsupportedOperationException` - if this message does not support the SOAP 1.2 concept of Fault Node.
      Since:
        SAAJ 1.3

    - #### getFaultRole

          String getFaultRole()

      Returns the optional Role element value for this `SOAPFault` object. The Role element is optional in SOAP 1.2.
      Returns:
        Content of the env:Fault/env:Role element as a String or `null` if none
      Throws:
        `UnsupportedOperationException` - if this message does not support the SOAP 1.2 concept of Fault Role.
      Since:
        SAAJ 1.3

    - #### setFaultRole

          void setFaultRole(String uri)
                     throws SOAPException

      Creates or replaces any existing Role element value for this `SOAPFault` object. The Role element is optional in SOAP 1.2.
      Parameters:
        `uri` - - the URI of the Role
      Throws:
        `SOAPException` - if there was an error in setting the Role for this `SOAPFault` object.
        `UnsupportedOperationException` - if this message does not support the SOAP 1.2 concept of Fault Role.
      Since:
        SAAJ 1.3

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, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.