[Lab] SOAP Fault Demo

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

 

Problem statement

We will create a simple web service class with a single method that will accept an integer and check if it is even. If even we will return “Received even N” where N is the received even number.

If received number is not even, then we will throw a custom exception NotEvenNumberException that extends Exception.

We will publish the web service along with the custom exception into Glassfish applicaiton server.

We will however test using a standard testing tool such as SOAP UI. This is because Glassfish server web service tester will not show the SOAP message as is, in case of a SOAP fault; instead it will show you the complete stacktrace.

 

The webservice - EvenNumberChecker.java

package com.javajee.webservices.soap;

import javax.jws.WebService;

 

@WebService

public class EvenNumberChecker {

     public String onlyEven(int even) throws NotEvenNumberException {

          if (even % 2 == 0) {

              return "Received even" + even;

          } else {

              throw new NotEvenNumberException(1);

          }

     }

}

 

The custom exception – NotEvenNumberException

package com.javajee.webservices.soap;

 

public class NotEvenNumberException extends Exception {

     public NotEvenNumberException(int i) {

          super("Not an even numbber:"+i);

     }

     private static final long serialVersionUID = 1L;

}

 

Generated WSDL

Once the service is deployed and Glassfish is restarted, you can verify the WSDL file using the below url:

http://localhost:8080/WebServiceDemo/EvenNumberCheckerService?wsdl

Note: You may also get the wsdl url from your Glassfish Admin console.

 

SOAP Request and SOAP response

Test using a standard testing tool such as SOAP UI.

 

Glassfish server web service tester will not show the SOAP message as is, in case of a SOAP fault; instead it will show you the complete stacktrace.

 

Observations

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.

Comments

Glassfish Server does not display the SOAP Fault messages. It is mainly used only for Dev to identify the exception. There are tools available where you can see the exact SOAP Response or Fault message and one such open source tool is "Soap UI Client". Try downloading the SOAP UI Plugin and use it to see the SOAP Fault message.

Was it useful?

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)