package org.superbiz.calculator;
import jakarta.ejb.Stateless;
import jakarta.jws.WebService;
@Stateless
@WebService(
portName = "CalculatorPort",
serviceName = "CalculatorWsService",
targetNamespace = "http://superbiz.org/wsdl")
public class Calculator {
public int sum(int add1, int add2) {
return add1 + add2;
}
public int multiply(int mul1, int mul2) {
return mul1 * mul2;
}
}
Simple Webservice Without Interface
Help us document this example! Click the blue pencil icon in the upper right to edit this page.
Calculator
ejb-jar.xml
<ejb-jar/>
CalculatorTest
package org.superbiz.calculator;
import org.apache.commons.io.IOUtils;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Test;
import org.junit.runner.RunWith;
import java.net.URL;
import static org.junit.Assert.assertTrue;
@RunWith(Arquillian.class)
public class CalculatorTest {
@ArquillianResource
private URL base;
@Deployment(testable = false)
public static WebArchive war() {
return ShrinkWrap.create(WebArchive.class, "simple-webservice-without-interface.war")
.addClass(Calculator.class);
}
@Test
public void wsdlExists() throws Exception {
final URL url = new URL(base.toExternalForm() + "webservices/Calculator?wsdl");
assertTrue(IOUtils.readLines(url.openStream()).size() > 0);
assertTrue(IOUtils.readLines(url.openStream()).toString().contains("CalculatorWsService"));
}
}
arquillian.xml
<arquillian
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>
<container qualifier="tomee" default="true">
<configuration>
<property name="httpPort">-1</property>
<property name="stopPort">-1</property>
<property name="appWorkingDir">target/tomee-embedded</property>
</configuration>
</container>
</arquillian>