import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService
public interface Calculator {
@WebMethod
int add(int a, int b);
@WebMethod
int subtract(int a, int b);
}
import javax.jws.WebService;
@WebService(endpointInterface = "com.example.Calculator")
public class CalculatorImpl implements Calculator {
public int add(int a, int b) {
return a + b;
}
public int subtract(int a, int b) {
return a - b;
}
}
import javax.xml.ws.Endpoint;
public class WebServicePublisher {
public static void main(String[] args) {
String url = "http://localhost:8080/calculator";
Endpoint.publish(url, new CalculatorImpl());
System.out.println("Web service published at " + url);
}
}
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import java.net.URL;
public class WebServiceClient {
public static void main(String[] args) throws Exception {
URL url = new URL("http://localhost:8080/calculator?wsdl");
QName qname = new QName("http://example.com/", "CalculatorService");
Service service = Service.create(url, qname);
Calculator calculator = service.getPort(Calculator.class);
int result = calculator.add(10, 20);
System.out.println("Addition result: " + result);
result = calculator.subtract(30, 15);
System.out.println("Subtraction result: " + result);
}
}
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
id="WebApp_ID" version="3.0">
<display-name>JAX-WS Web Service</display-name>
<description>Example Web Service</description>
<servlet>
<servlet-name>CalculatorService</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CalculatorService</servlet-name>
<url-pattern>/calculator</url-pattern>
</servlet-mapping>
<listener>
<listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
</listener>
</web-app>