Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

...

This tutorial will take you through the steps required in developing, deploying and testing a Web Service in Apache Geronimo. After completing this tutorial you should be able to understand how to develop simple JAX-WS compliant web services in Apache Geronimo using Eclipse development environment.

...

For new users, Web Services can be created in two ways:

  • Bottom Up Web Service - creating web services from Java classes.
  • Top Down Web Service - creating web services from WSDL document.

This tutorial will help you in creating a Bottom Up Web Service from a Java class which will be exposed as a Servlet to the client applications.

...

  1. Sun JDK 6.0+ (J2SE 1.6)
  2. Eclipse IDE for Java EE Developers, which is platform specific
  3. Apache Geronimo Eclipse Plugin 2.1.x
  4. Apache Geronimo Server 2.1.x note

    Geronimo version 2.1.x, Java 1.5 runtime, and Eclipse Ganymede are used is used in this tutorial but other versions can be used instead (e.g., Geronimo version 2.2, Java 1.6, Eclipse Europa)

Details on installing eclipse are provided in the Development environment section. This tutorial will take you through the following steps:

...

...

Create a Dynamic Web Project to host the Web Service

...

  1. In Project Explorer view, expand jaxws-converter project, right-click on Java Resources: src and select New --> Package.

  2. Specify org.apache.geronimo.samples.jaxws as the package name and click Finish.

  3. Right-click on the new package and select New --> Interface.

  4. Name the interface as Converter and click Finish.

  5. Add the following code to the Converter interface: Code BlockborderStylesolidtitleConverter.java package org.apache.geronimo.samples.jaxws; import java.math.BigDecimal; import javax.jws.WebService; @WebService(name="ConverterPortType", targetNamespace = "http://jaxws.samples.geronimo.apache.org") public interface Converter { public BigDecimal dollarToRupees(BigDecimal dollars); public BigDecimal rupeesToEuro(BigDecimal rupees); }
  6. Right-click on the new package and select New --> Class.

  7. Name the class as ConverterService, add org.apache.geronimo.samples.jaxws.Converter as the interface and click Finish.

  8. Add the following code to the ConverterService class: Code BlockborderStylesolidtitleConverterService.java package org.apache.geronimo.samples.jaxws; import java.math.BigDecimal; import javax.jws.WebService; @WebService(serviceName = "Converter", portName = "ConverterPort", endpointInterface = "org.apache.geronimo.samples.jaxws.Converter", targetNamespace = "http://jaxws.samples.geronimo.apache.org") public class ConverterService implements Converter { private BigDecimal rupeeRate = new BigDecimal("40.58"); private BigDecimal euroRate = new BigDecimal("0.018368"); public BigDecimal dollarToRupees(BigDecimal dollars) { BigDecimal result = dollars.multiply(rupeeRate); return result.setScale(2, BigDecimal.ROUND_UP); } public BigDecimal rupeesToEuro(BigDecimal rupees) { BigDecimal result = rupees.multiply(euroRate); return result.setScale(2, BigDecimal.ROUND_UP); } }
  9. Let us try to understand each annotation:

...

  1. In Project Explorer view, double-click on jaxws-converter --> WebContent --> WEB-INF --> web.xml to open it in an editor and add the following <servlet> and <servlet-mapping> elements inside it.
    Code Blockxmlxml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>jaxws-converter</display-name> <servlet> <display-name>Converter</display-name> <servlet-name>Converter</servlet-name> <servlet-class> org.apache.geronimo.samples.jaxws.ConverterService </servlet-class> </servlet> <servlet-mapping> <servlet-name>Converter</servlet-name> <url-pattern>/converter</url-pattern> </servlet-mapping> </web-app>

Deploy the Web Service

...

  1. In Servers view, right-click on Apache Geronimo Server Runtime and select Add and Remove Projects.

  2. In the popup dialog, select jaxws-converter project, click Add, and then click Finish. Start the Geronimo server if it is not already running. The Web Service will now be deployed, and Geronimo will create the required WSDL and other required artifacts.

  3. Once the Web Service is deployed on to the server (Server Status says Synchronized), launch a browser and go to the following url:

    http://localhost:8080/jaxws-converter/converter.

    You should see a message from Axis2 engine as below:



  4. You can also view the WSDL file generated by Geronimo by going to the following url:

    http://localhost:8080/jaxws-converter/converter?wsdl
    Infotitle

    Generated files by Geronimo

    Geronimo processes the annotations in source files and automatically generates the required artifacts to deploy the Web Service.

    You can see the Geronimo created files in the directory <INSTALL_DIR>/repository/org/apache/geronimo/samples/jaxws/jaxws-converter/1.0/jaxws-converter-1.0.car/. At this location you can find a new directory which Geronimo created for deploying the web service which contains the WSDL file and other required stubs.

...

...

Geronimo has a built-in plug-in named jaxws-tools which provides tools for generating WSDL and other necessary files used in JAX-WS web services. The plug-in relies on Sun's wsgen and wsimport tools to generate the web services artifacts. Please see wsgen or wsimport documentation for more information.

...

Test the Web Service using Eclipse Web Services Explorer

...