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

...

Code Block
xml
xml
borderStylesolid
titleweb.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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>	

        .....
</web-app>


    <service-ref>
        <service-ref-name>services/Calculator</service-ref-name>
        <service-interface>javax.xml.ws.Service</service-interface>
        <wsdl-file>WEB-INF/wsdl/CalculatorService.wsdl</wsdl-file>
    </service-ref>
</web-app>
Info
titleweb.xml

The web.xml descriptor is not necessary for simple JAX-WS web service deployments. If the web.xml descriptor is not provided, it will be automatically generated during deployment. In this sample, while not required to implement the web service, it is required to provide the service-ref used by the jsp client.

The geronimo plan has no information for the web service but does specify more information for the service-ref for the jsp client. The For tomcat, the plan can be located after building the project in jaxws-calculator/jaxws-calculator-jettytomcat/target/resources/META-INF/plan.xml. For Jetty, the plan can be located after building the project in jaxws-calculator/jaxws-calculator-jetty/target/resources/META-INF/plan.xml.

Code Block
xml
xml
borderStylesolid
titlegeronimo-web.xml for tomcat
<?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.2">
    <dep:moduleId>
      <dep:groupId>org.apache.geronimo.samples</dep:groupId>
      <dep:artifactId>jaxws-calculator-jetty<tomcat</dep:artifactId>
      <dep:version>2.1.2-SNAPSHOT</dep:version>
      <dep:type>car</dep:type>
    </dep:moduleId>
    <dep:dependencies>
      <dep:dependency>
        <dep:groupId>org.apache.geronimo.configs</dep:groupId>
        <dep:artifactId>jasper</dep:artifactId>
        <dep:version>2.1.2-SNAPSHOT</dep:version>
        <dep:type>car</dep:type>
      </dep:dependency>
      <dep:dependency>
        <dep:groupId>org.apache.geronimo.configs</dep:groupId>
        <dep:artifactId>jetty6<artifactId>tomcat6</dep:artifactId>
        <dep:version>2.1.2-SNAPSHOT</dep:version>
        <dep:type>car</dep:type>
      </dep:dependency>
      <dep:dependency>
        <dep:groupId>org.apache.geronimo.configs</dep:groupId>
        <dep:artifactId>cxf<artifactId>axis2</dep:artifactId>
        <dep:version>2.1.2-SNAPSHOT</dep:version>
        <dep:type>car</dep:type>
      </dep:dependency>
    </dep:dependencies>
    <dep:hidden-classes/>
    <dep:non-overridable-classes/>
  </dep:environment>
  <context-root>/jaxws-calculator</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>

</web-app>
Info
titleOptional geronimo-web.xml

You could also deploy the jaxws-calculator-war\target\jaxws-calculator-war-version.war file without a plan,
use the steps below:

Update the "soap:address location" value in the CalculatorService.wsdl to refect the correct version
of the jaxws-calculator-war module, for example

<soap:address location="http://localhost:8080/jaxws-calculator-war-version/calculator"/>

Rebuild the sample and deploy the war.

The following WSDL file describes the Web Service:

Code Block
xml
xml
borderStylesolid
titleCalculatorService.wsdl
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="Calculator"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://jws.samples.geronimo.apache.org"
    xmlns:tns="http://jws.samples.geronimo.apache.org">

    <wsdl:types>
        <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
                    xmlns="http://jws.samples.geronimo.apache.org" 
                    targetNamespace="http://jws.samples.geronimo.apache.org"
                    attributeFormDefault="unqualified" elementFormDefault="qualified">

             <xsd:element name="add">
                <xsd:complexType>
                   <xsd:sequence>
                      <xsd:element name="value1" type="xsd:int"/>
                      <xsd:element name="value2" type="xsd:int"/>
                   </xsd:sequence>
                </xsd:complexType>
             </xsd:element>

             <xsd:element name="addResponse">
                <xsd:complexType>
                   <xsd:sequence>
                      <xsd:element name="return" type="xsd:int"/>
                   </xsd:sequence>
                </xsd:complexType>
             </xsd:element>
        </xsd:schema>
    </wsdl:types>
  
    <wsdl:message name="add">
       <wsdl:part name="add" element="tns:add"/>
    </wsdl:message>

    <wsdl:message name="addResponse">
       <wsdl:part name="addResponse" element="tns:addResponse"/>
    </wsdl:message>

    <wsdl:portType name="CalculatorPortType">
       <wsdl:operation name="add">
         <wsdl:input name="add" message="tns:add"/>
         <wsdl:output name="addResponse" message="tns:addResponse"/>
       </wsdl:operation>
    </wsdl:portType>
        
    <wsdl:binding name="CalculatorSoapBinding" type="tns:CalculatorPortType">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        
        <wsdl:operation name="add">
            <soap:operation soapAction="add" style="document"/>
            <wsdl:input name="add">
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output name="addResponse">
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
                
    </wsdl:binding>
  
    <wsdl:service name="Calculator">
        <wsdl:port name="CalculatorPort" binding="tns:CalculatorSoapBinding">
            <soap:address location="http://localhost:8080/jaxws-calculator-1.0/calculator"/>
        </wsdl:port>
    </wsdl:service>
      
</wsdl:port>
    </wsdl:service>
      
</wsdl:definitions>
definitions>
Info
titleCalculatorService.wsdl

In J2EE version 1.4, wsdl file was required to describe the Web Service. In Java EE 5 wsdl file is optional. It can be generated at deployment time by the Geronimo server if CalculatorService.wsdl is not provided with the sample.

Info
titlewebservices.xml

In J2EE version 1.4, the webservices.xml file was also necessary to describe the Web Service. In Java EE 5 that file is optional and is not required in this example.

...

To test this sample service use using the add.jsp (http://localhost:8080/jaxws-calculator/add.jsp) to invoke the Web Service. Once the JSP page loads type in two values to add and press the Add button. The result of the addition should show up below. For example:

Note

TODO document command Command line client CalculatorClient.java is not currently working yet.