SOAP Faults

We have already seen what SOAP faults are and how they are reprecented in the WSDL and SOAP message in the WSDL and SOAP overview notes respectively. Here we will try to consolidate the basic information related to SOAP faults.

Java application exceptions can be mapped to SOAP faults in WSDL/SOAP message.

 

Fault element in SOAP message

  • A SOAP message can have fault elements within it.

  • Fault elements contain errors and status information.

  • Fault is an optional element.

  • If present, it must appear as a child element of the Body element.

  • It can only appear once in a SOAP message.

 

The faultcode values

The faultcode values must be used in the faultcode element when describing faults:

  • VersionMismatch

    • invalid namespace for the SOAP Envelope element

  • MustUnderstand   

    • An immediate child element of the Header element, with the mustUnderstand attribute set to "1", was not understood

  • Client

    • message was incorrectly formed or contained incorrect information

  • Server

    • problem with the server so the message could not proceed.

 

Fault Element in WSDL

  • Fault elements may come in places such as:

  • Within a message element as a part:

    • <part name="fault" element="tns:MissingName" />

  • As a child of operation element within portType section.

    • <fault message="tns:MissingName" name="MissingName" />

  • As a child of operation element within binding section

    • <fault name="MissingName">

    • <soap:fault name="MissingName" use="literal" />

    • </fault>

 

Important Note:

If the exception is a checked exception, the corresponding fault details are present in the wsdl. However, if the exception is a unchecked exception (RuntimeException or its subclasses), the corresponding fault details are present in the wsdl. In both cases, the SOAP response will have fault details if an exception is thrown.

Quick Notes Finder Tags

Activities (1) advanced java (1) agile (3) App Servers (6) archived notes (2) Arrays (1) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (55) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exception (1) Exceptions (4) Exercise (1) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (5) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (9) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (11) Java Programmer 2 (7) Javascript Frameworks (1) Java SE Professional (1) JPA 1 - Module (6) JPA 1 - Modules (1) JSP (1) Legacy Java (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quartz Scheduler (1) Quizzes (17) RabbitMQ (1) references (2) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Site Usage Guidelines (1) Sorting (1) source code management (1) spring (4) spring boot (3) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) troubleshooting (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)