heartin's blog

[Lab-Analysis] Using JAXB Annotations with SOAP Web Services

In the previous lab we created the web service with an annotation @XmlType with attribute propOrder  on top of Employee class to define order of field elements.

[Lab] Using JAXB Annotations with SOAP Web Services

We can use JAXB annoatations to specify the XML element names within the SOAP request and response.

JAXB will be making use of your default constructor and setters/getters. Remember to give a default constructor for your class in case you are having parameterized constrcutors.

 

Commonly Used JAXB 2 Annotations

In JAXB2, annotations are used both in generated Java content classes and in Java classes as input to generate schema definitions.

These binding annotations are defined in the javax.xml.bind.annotation package.

Below are some of the more commonly used annotations defined in the javax.xml.bind.annotation package.

  1. XmlAccessorType

    • Specifies the default serialization of fields and properties

    • Annotation Elements

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.

[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.

Using Eclipse Web Services Explorer for Testing and Explorig SOAP Web Services

The Web Services Explorer is a tool available within Eclipse and can be used to test SOAP web services. 

 

The Web Services Explorer primarily has below funtionalities:

  • Browsing and invoking Web services via their WSDL and XSD.

  • Biscovering Web services in WS-Inspection 1.0 documents, and in UDDI v2 or v3 registries using the UDDI v2 protocol.

  • Publishing Web services to UDDI v2 or v3 registries using the UDDI v2 protocol.

 

Using SOAP UI Tool for Testing SOAP Web Services

SoapUI is an open-source web service testing application for SOAP and REST web services.

Its functionality covers web service inspection, invoking, development, simulation and mocking, functional testing, load and compliance testing.

A commercial version, SoapUI Pro, which mainly focuses on features designed to enhance productivity, is also available. 

 

[Lab-Extras] Common Issues While Deploying JAX-WS RI Web Service in Apache Tomcat

Issue 1

java.lang.ClassNotFoundException:

     com.sun.xml.ws.transport.http.servlet.WSServletContextListener

 

Solution

Copy “jaxws-rt.jar” from JAX-WS RI zip (downloaded from https://jax-ws.java.net/) to Tomcat library folder “{$TOMCAT}/lib“.

 

Issue 2

Server startup failed and below errors were observed in logs:

SEVERE: A child container failed during start

[Lab] Developing Bottum-up SOAP Web Service in Tomcat Container using JAX-WS RI

We did not had to do any extra configurations for deploying our web service class in Glassfish server. This is because Java EE 5 and above compliant application servers such as Glassfish, comply to JSR 109 (Web services 1.2/1.3) and JSR 224 (JAX-WS 2.0/2.1/2.2).

Additional SOAP Binding Attributes and Attribute Combinations

The @SOAPBinding annotation can be used to configure the soap binding styles.

You can use the @SOAPBinding annotation on the SEI and any of its methods. The settings of the method’s annotation takes precedence.

 

The @SOAPBinding annotation has three attributes: Style, Use and ParameterStyle.

  • Values for style can be Style.DOCUMENT (Default) or Style.RPC.

  • Values for use are Use.Literal (Default) or Use.Encoded.

Pages

Search the Web

Custom Search

Searches whole web. Use the search in the right sidebar to search only within javajee.com!!!