Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Details on installing eclipse are provided in the Development environment section. This tutorial is organized in the following sections:

Table of Contents

...

maxLevel2
typelist
separatorpipe

Setting Eclipse for Application Development

  1. Create a Dynamic Web Project

    • Select File --> New, select Other...




    • In the popup window select Web -->Dynamic > Dynamic Web Project category and click NEXTNext.




    • Type in jaxws-calculator as the Project name: and select Next


      On the next screen check the box for Axis2 Web Services
      Image Removed


    • Make sure Generate Deployment Descriptor is selected and click Next.




    • Modify the Group Id to: org.apache.geronimo.samples.jws and Artifact Id to: to Calculator.




      Info
      titleUseful Information

      Group ID: A name that identifies the group of a module. The default value is default.
      Artifact ID: A name of the module in a group. The default value is <blank>.
      Version: The version of module. The default value is 1.0
      Type: The type of module, such as system module (car), jar module (jar), web
      archive (war), enterprise archive (ear), and so on. The default value is car
      A module is stored inside a repository as repository/groupId/artifactId/version/artifactIdversion.
      type. This repository structure gives a more standardized and easily maintainable
      structure to Geronimo applications.



  2. Axis2 Configuration:

    • Select Finish Window --> Preferences.

      Image Added


    • Select Web Services --> Axis2 Preferences.

    • Under Axis2 Runtime tab, browse to the installation root of Apache Geronimo. Select Ok.

      Note

      Ignore any error messages

      Image Added


  3. Right-click on the jaxws-calculator project and select Properties, then select Project Facets

    • On the next screen check the box for Axis2 Web Services

      Image Added


    • Select Finish.
      Warning
      title
      Warning
      titleWarning

      Depending upon your environment, you may see the error message "Failed while installing Axis2 Web Services Core 1.1". Do not worry. We will just have to manually point Axis2 to the installation directory of Apache Geronimo to fix this error.

      Image Removed
    AXIS2 Configuration
      Select Window->Preferences.
      Image Removed
    • Select Web Services->Axis2 Preferences.
    • Under Axis2 Runtime tab, browse

      to manually point Axis2 to the installation

      root

      directory of Apache Geronimo

      . Select Ok.
      Image Removed

      to fix this error.

      Image Added


      This completes the configuration of Eclipse for application development.

...

To implement the Calculator we are going to create a package org.apache.geronimo.samples.jws. This package will contain 2 classes. A Calculator Interface, and CalculatorService which implements the Calculator interface. Lets go step by step with creating the package, interface class and implementation class.

  1. Right-click on Java Resources: src and select New -->Package> Package.




  2. Name the package as org.apache.geronimo.samples.jws. Select Finish.




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




  4. Name the interface as Calculator. Select Finish.




  5. Add the following code to the Calculator interface class
    Code Block
    titleCalculator.class
    borderStylesolid
    package org.apache.geronimo.samples.jws;
    
    import javax.jws.WebService;
    import javax.jws.WebMethod;
    import javax.jws.WebParam;
    
    @WebService(name="CalculatorPortType",
                targetNamespace = "http://jws.samples.geronimo.apache.org")
    public interface Calculator {
    
        @WebMethod
        public int add(@WebParam(name = "value1") int value1,
                       @WebParam(name = "value2") int value2);
    
    }
    
  1. Right-click on the package org.apache.geronimo.samples.jws and select
    New ->Class-> Class.
  2. Name the class CalculatorService
  3. Accept all the defaults and Select Finish.




  4. Add the following code to CalculatorService.class
    Code Block
    titleCalculatorService.class
    borderStylesolid
    package org.apache.geronimo.samples.jws;
    
    import javax.annotation.Resource;
    import javax.jws.WebService;
    import javax.xml.ws.WebServiceContext;
    
    @WebService(serviceName = "Calculator",
                portName="CalculatorPort",
                endpointInterface = "org.apache.geronimo.samples.jws.Calculator",
                targetNamespace = "http://jws.samples.geronimo.apache.org"
                )
    public class CalculatorService implements Calculator {
    
        @Resource
        private WebServiceContext context;
    
        public int add(int value1, int value2) {
            System.out.println("User Principal: " + context.getUserPrincipal());
            return value1 + value2;
        }
    }
    

...

This section will take you through the creation of two jsp's index.jsp and result.jsp.index.jsp will prompt the
user to enter two whole number values to add together. After submitting the form, the action will be forwarded to result.jsp. Result.jsp will call the Calculator add Web Service.

  1. Right Click -click on the Web Content folder and Select New ->JSP-> JSP.
  2. Name the jsp as index.jsp and Select Finish.




  3. Add the following code to index.jsp
    Code Block
    titleindex.jsp
    borderStylesolid
    <%@ page
    import="java.net.URL,javax.xml.namespace.QName,javax.xml.ws.Service,org
    .apache.geronimo.samples.jws.Calculator"%>
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
    <title>Calculator</title>
    </head>
    <body>
    <form action="result.jsp">
    Please enter 2 whole numbers to add: <input type="text"
    name="value1"> + <input type="text" name="value2"> <input type="submit"
    value="=">
    </form>
    </body>
    </html>
    
  4. Right Click -click on the Web Content folder and Select New ->JSP-> JSP.
  5. Name the jsp as result.jsp and Select Finish.
  6. Add the following code to jsp.
    Code Block
    titleresult.jsp
    borderStylesolid
    <%@ page
    import="java.net.URL,javax.xml.namespace.QName,javax.xml.ws.Service,org
    .apache.geronimo.samples.jws.Calculator"%>
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
    <title>Calculator Result</title>
    </head>
    <%
    int value1 = 0;
    int value2 = 0;
    int sum = 0;
    try {
    System.out.println( request.getParameter( "value1" ) + " " +
    request.getParameter( "value2" ) );
    value1 = Integer.parseInt( request.getParameter( "value1" ) );
    value2 = Integer.parseInt( request.getParameter( "value2" ) );
    URL url = new URL("http://localhost:8080/jaxws-calculator-
    1.0/calculator?wsdl");
    QName qname = new
    QName("http://jws.samples.geronimo.apache.org", "Calculator");
    Service service = Service.create(url, qname);
    Calculator calc =
    (Calculator)service.getPort(Calculator.class);
    sum = calc.add(value1, value2);
    } catch ( Exception e ) {
    e.printStackTrace();
    }
    %>
    <body>
    The result is: <%=value1%>+<%=value2%>=<%=sum%>
    <br>
    <a href="index.jsp">Back</a>
    </body>
    </html>
    
    This finishes the development of Web client.

...

  1. Expand WEB-INF/web.xml and add the following code
    Code Block
    titleweb.xml
    borderStylesolid
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:calc="urn:geronimo-samples-jws"
    xmlns="http://java.sun.com/xml/ns/javaee"
    version="2.5">
    <servlet>
    <display-name>CalculatorService</display-name>
    <servlet-name>CalculatorService</servlet-name>
    <servlet-class>
    org.apache.geronimo.samples.jws.CalculatorService
    </servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>CalculatorService</servlet-name>
    <url-pattern>/calculator</url-pattern>
    </servlet-mapping>
    <service-ref>
                <service-ref-name>services/Calculator</service-ref-name>
                <service-interface>javax.xml.ws.Service</service-interface>
                <wsdl-file>WEB-INF/CalculatorService.wsdl</wsdl-file>
            </service-ref>
    </web-app>
    
  2. Similarly double-click geronimo-web.xml and add the following code.
    Code Block
    titlegeronimo-web.xml
    borderStylesolid
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1">
    <dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1">
    <dep:moduleId>
    <dep:groupId>org.apache.geronimo.samples.jws</dep:groupId>
    <dep:artifactId>Calculator</dep:artifactId>
    <dep:version>1.0</dep:version>
    <dep:type>car</dep:type>
    </dep:moduleId>
    <dep:dependencies>
    </dep:dependencies>
    </dep:environment>
    <context-root>/jaxws-calculator-1.0</context-root>
    <service-ref>
       <service-ref-name>services/Calculator</service-ref-name>
       <port>
          <port-name>CalculatorPort</port-name>
          <protocol>http</protocol>
          <host>localhost</host>
          <port>8080</port>
          <uri>/jaxws-calculator/calculator</uri>
       </port>
     </service-ref>
    </web-app>
    

Deploy and Run

  1. Right-click on jaxws-calculator project. Select Run As ->Run -> Run On Server.




  2. On the next window select Apache Geronimo V2.1 and Select Finish.




  3. Once the application is deployed on the server. Launch a browser and run the following URL http://localhost:8080/jaxws-calculator-1.0/index.jsp.




  4. Give the values as 5,7. Select =.




  5. The result is 12 as shown in the figure