heartin's blog

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

SOAP Binding Styles - DOCUMENT and RPC

SOAP Binding can be done using two styles: DOCUMENT and RPC. This is denoted in the wsdl as style in the binding section. 

The @SOAPBinding annotation can be used over an SEI (separate interface or class) to configure the soap binding styles, when developing a web service bottom up. Default is DOCUMENT. Annotate the SEI with @SOAPBinding(Style=Style.RPC) to get the RPC style. Generate a wsdl both with DOCUMENT and RPC styles and refer to them in parallel while going through these notes.

 

[Exercises] Additional Exercises based on SOAP Web Services

  1. Create a Web Service with a method that accept a String (as parameter) and Echo it back (return it).

    • Deploy the service on Glassfish application server

    • View and analyze the WSDL file and find the relationships with the class.

    • Test it using the Glassfish webservice tester

    • View and analyze SOAP request and SOAP response displayed by the tester.

[Lab-Analysis] Deploying a Bottum-up SOAP Web Service in Glassfish Server from Eclipse

We will quickly review the results of the lab @ http://javajee.com/lab-deploying-a-simple-soap-web-service-in-glassfish-....

 

The Web Service

We had deployed the below simple web service in Glassfish server using eclipse and all it took was to use an annotation @WebService to make it a web service. 

package com.javajee.webservices.soap;

[Lab] Deploying a Bottum-up SOAP Web Service in Glassfish Server from Eclipse

Prerequisites

Before trying out this example, you will need to download and install Java EE 7 SDK which comes with GlassFish Open Source Edition 4 (currently 4.1.1) and then configure eclipse to deploy Java EE applications directly to GlassFish Server.

For details, refer to http://www.javajee.com/configuring-glassfish-server-4-with-eclipse-to-bu....

 

Handling Exceptions in Java

We can handle exceptions using the try-catch-finally construct or explicitly tell as being handled elsewhere through the use of throws clause in that method signature.

The try-catch-finally block will look as below:

try{

//Some code that can throw IOException

}

catch(Exception ex)

{

//do some workaround.

Java 7 New Exception Features - Multicatch Exceptions and Try with Resources

Java 7 introduces few new features to the exception handling mechanism. We will discuss them quickly here.

 

Java 7 Multi-Catch Exceptions

With java 7, you can catch multiple exceptions using a single catch block as:

    try {

      File file = new File("filename.txt");

      Scanner sc = new Scanner(file);

      throw new SQLException();

    }

    catch (FileNotFoundException | SQLException e) {

Inheritance Strategies in Hibernate 4.3

Hibernate uses following strategies for saving an inheritance hierarchy of classes created in Java to the databases: SINGLE_TABLE, TABLE_PER_CLASS and JOINED.  

We can use @Inheritance annotation over the entity class to specify the inheritance strategy.

We specify the inheritance strategy by assigning a strategy from the InheritanceType enumeration to the strategy parameter of the @Inheritance annotation.  

Pages

Search the Web

Custom Search

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