package com.example.calculator;
import jakarta.jws.WebService;
import jakarta.jws.WebMethod;
@WebService
public class Calculator {
@WebMethod
public int add(int a, int b) {
return a + b;
}
@WebMethod
public int subtract(int a, int b) {
return a - b;
}
@WebMethod
public int multiply(int a, int b) {
return a * b;
}
@WebMethod
public int divide(int a, int b) {
if (b == 0) {
throw new ArithmeticException("Division by zero!");
}
return a / b;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<display-name>Calculator Web Service</display-name>
<servlet>
<servlet-name>Calculator</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.sun.jersey.spi.container.servlet.ServletContainer</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Calculator</servlet-name>
<url-pattern>/calculator/*</url-pattern>
</servlet-mapping>
</web-app>
$ mvn clean package
$ cp target/calculator.war $CATALINA_HOME/webapps/
$ $CATALINA_HOME/bin/startup.sh