You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Calculator.java
package org.apache.geronimo.samples.jws;

import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;

@WebService
public interface Calculator {

    @WebMethod
    public int add(@WebParam(name = "value1") int value1,
                   @WebParam(name = "value2") int value2);

}
CalculatorService.java
package org.apache.geronimo.samples.jws;

import javax.annotation.Resource;
import javax.jws.WebService;
import javax.xml.ws.WebServiceContext;

@WebService(endpointInterface = "org.apache.geronimo.samples.jws.Calculator")
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;
    }
}
web.xml
<?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>
	
</web-app>
geronimo-web.xml
<?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>
</web-app>
webservices.xml
<?xml version="1.0" encoding="UTF-8"?>
<webservices xmlns="xmlns="http://java.sun.com/xml/ns/javaee" version="1.2">
 <webservice-description>
  <webservice-description-name>CalculatorService</webservice-description-name>
  <wsdl-file>CalculatorService.wsdl</wsdl-file>
  <port-component>
	  <port-component-name>CalculatorServicePort</port-component-name>
	  <wsdl-port>CalculatorPort</wsdl-port>
	  <service-endpoint-interface>
                org.apache.geronimo.samples.jws.Calculator
	  </service-endpoint-interface>
	  <service-impl-bean>
	      <servlet-link>CalculatorService</servlet-link>
	  </service-impl-bean>
  </port-component>
 </webservice-description>
</webservices>
CalculatorClient.java
package org.apache.geronimo.samples.jws.client;

import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;

import org.apache.geronimo.samples.jws.Calculator;

public class CalculatorClient {

    public static void main(String[] args) throws Exception {
        int value1 = Integer.parseInt(args[0]);
        int value2 = Integer.parseInt(args[1]);

        int sum = add(value1, value2);

        System.out.println("Sum of " + value1 + " and " + value2 + " is " + sum);
    }

    public static int add(int value1, int value2) throws Exception {
        URL url = new URL("http://localhost:8080/jaxws-calculator-1.0/CalculatorService.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);
        
        return calc.add(value1, value2);
    }
}
  • No labels