{"id":4507,"date":"2020-08-21T15:07:04","date_gmt":"2020-08-21T09:37:04","guid":{"rendered":"https:\/\/www.h2kinfosys.com\/blog\/?p=4507"},"modified":"2020-08-22T18:02:16","modified_gmt":"2020-08-22T12:32:16","slug":"web-service-example","status":"publish","type":"post","link":"https:\/\/www.h2kinfosys.com\/blog\/web-service-example\/","title":{"rendered":"Web Service Example"},"content":{"rendered":"\n<p>In this article, we will see the configuration of a simple web service Example.<\/p>\n\n\n\n<p>For this, we annotate a class with @<a href=\"https:\/\/www.h2kinfosys.com\/blog\/web-services-testing\/\">WebService <\/a>and @Stateless.<\/p>\n\n\n\n<p><strong>Step 1: <\/strong>No external xml files are needed. The below class will be placed in a jar or war and deployed into a <a href=\"https:\/\/www.oracle.com\/java\/technologies\/compatibility-jsp.html\" rel=\"nofollow noopener\" target=\"_blank\">compliant Java EE<\/a> server like TomEE.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">import javax.ejb.Stateless;\nimport javax.jws.WebService;\n@Stateless\n@WebService(\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;portName = \"CalculatorPort\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;serviceName = \"CalculatorService\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;targetNamespace = \"https:\/\/superbiz.org\/wsdl\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;endpointInterface = \"org.superbiz.calculator.ws.CalculatorWs\")\npublic class Calculator implements CalculatorWs {\n&nbsp;&nbsp;&nbsp;&nbsp;public int sum(int add1, int add2) {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return add1 + add2;\n&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;public int multiply(int mul1, int mul2) {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return mul1 * mul2;\n&nbsp;&nbsp;&nbsp;&nbsp;}\n}<\/pre>\n\n\n\n<p><strong>Step 2: @WebService Endpoint Interface<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">import javax.jws.WebService;\n@WebService(targetNamespace = \"https:\/\/superbiz.org\/wsdl\")\npublic interface CalculatorWs {\n&nbsp;&nbsp;&nbsp;&nbsp;public int sum(int add1, int add2);\n&nbsp;&nbsp;&nbsp;&nbsp;public int multiply(int mul1, int mul2);\n}<\/pre>\n\n\n\n<p><strong>Step 3: <\/strong>Calculator WSDL<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;wsdl:definitions xmlns:wsdl=\"https:\/\/schemas.xmlsoap.org\/wsdl\/\" name=\"CalculatorService\"\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;targetNamespace=\"https:\/\/superbiz.org\/wsdl\"\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:soap=\"https:\/\/schemas.xmlsoap.org\/wsdl\/soap\/\"\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:tns=\"https:\/\/superbiz.org\/wsdl\" xmlns:xsd=\"https:\/\/www.w3.org\/2001\/XMLSchema\"&gt;\n&nbsp;&nbsp;&lt;wsdl:types&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:schema attributeFormDefault=\"unqualified\" elementFormDefault=\"unqualified\"\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;targetNamespace=\"https:\/\/superbiz.org\/wsdl\" xmlns:tns=\"https:\/\/superbiz.org\/wsdl\"\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;xmlns:xsd=\"https:\/\/www.w3.org\/2001\/XMLSchema\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:element name=\"multiply\" type=\"tns:multiply\"\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:complexType name=\"multiply\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:sequence&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:element name=\"arg0\" type=\"xsd:int\"\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:element name=\"arg1\" type=\"xsd:int\"\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/xsd:sequence&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/xsd:complexType&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:element name=\"multiplyResponse\" type=\"tns:multiplyResponse\"\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:complexType name=\"multiplyResponse\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:sequence&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:element name=\"return\" type=\"xsd:int\"\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/xsd:sequence&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/xsd:complexType&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:element name=\"sum\" type=\"tns:sum\"\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:complexType name=\"sum\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:sequence&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:element name=\"arg0\" type=\"xsd:int\"\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:element name=\"arg1\" type=\"xsd:int\"\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/xsd:sequence&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/xsd:complexType&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:element name=\"sumResponse\" type=\"tns:sumResponse\"\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:complexType name=\"sumResponse\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:sequence&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;xsd:element name=\"return\" type=\"xsd:int\"\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/xsd:sequence&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/xsd:complexType&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/xsd:schema&gt;\n&nbsp;&nbsp;&lt;\/wsdl:types&gt;\n&nbsp;&nbsp;&lt;wsdl:message name=\"multiplyResponse\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;wsdl:part element=\"tns:multiplyResponse\" name=\"parameters\"\/&gt;\n&nbsp;&nbsp;&lt;\/wsdl:message&gt;\n&nbsp;&nbsp;&lt;wsdl:message name=\"sumResponse\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;wsdl:part element=\"tns:sumResponse\" name=\"parameters\"\/&gt;\n&nbsp;&nbsp;&lt;\/wsdl:message&gt;\n&nbsp;&nbsp;&lt;wsdl:message name=\"sum\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;wsdl:part element=\"tns:sum\" name=\"parameters\"\/&gt;\n&nbsp;&nbsp;&lt;\/wsdl:message&gt;\n&nbsp;&nbsp;&lt;wsdl:message name=\"multiply\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;wsdl:part element=\"tns:multiply\" name=\"parameters\"\/&gt;\n&nbsp;&nbsp;&lt;\/wsdl:message&gt;\n&nbsp;&nbsp;&lt;wsdl:portType name=\"CalculatorWs\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;wsdl:operation name=\"multiply\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;wsdl:input message=\"tns:multiply\" name=\"multiply\"\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;wsdl:output message=\"tns:multiplyResponse\" name=\"multiplyResponse\"\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/wsdl:operation&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;wsdl:operation name=\"sum\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;wsdl:input message=\"tns:sum\" name=\"sum\"\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;wsdl:output message=\"tns:sumResponse\" name=\"sumResponse\"\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/wsdl:operation&gt;\n&nbsp;&nbsp;&lt;\/wsdl:portType&gt;\n&nbsp;&nbsp;&lt;wsdl:binding name=\"CalculatorServiceSoapBinding\" type=\"tns:CalculatorWs\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;soap:binding style=\"document\" transport=\"https:\/\/schemas.xmlsoap.org\/soap\/http\"\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;wsdl:operation name=\"multiply\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;soap:operation soapAction=\"\" style=\"document\"\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;wsdl:input name=\"multiply\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;soap:body use=\"literal\"\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/wsdl:input&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;wsdl:output name=\"multiplyResponse\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;soap:body use=\"literal\"\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/wsdl:output&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/wsdl:operation&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;wsdl:operation name=\"sum\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;soap:operation soapAction=\"\" style=\"document\"\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;wsdl:input name=\"sum\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;soap:body use=\"literal\"\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/wsdl:input&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;wsdl:output name=\"sumResponse\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;soap:body use=\"literal\"\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/wsdl:output&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/wsdl:operation&gt;\n&nbsp;&nbsp;&lt;\/wsdl:binding&gt;\n&nbsp;&nbsp;&lt;wsdl:service name=\"CalculatorService\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;wsdl:port binding=\"tns:CalculatorServiceSoapBinding\" name=\"CalculatorPort\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;soap:address location=\"https:\/\/127.0.0.1:4204\/Calculator?wsdl\"\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/wsdl:port&gt;\n&nbsp;&nbsp;&lt;\/wsdl:service&gt;\n&lt;\/wsdl:definitions&gt;<\/pre>\n\n\n\n<p><strong>Step 4: <\/strong>Accessing the @WebService with javax.xml.ws.Service<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">import org.junit.BeforeClass;\nimport org.junit.Test;\nimport javax.ejb.embeddable.EJBContainer;\nimport javax.xml.namespace.QName;\nimport javax.xml.ws.Service;\nimport java.net.URL;\nimport java.util.Properties;\nimport static org.junit.Assert.assertEquals;\nimport static org.junit.Assert.assertNotNull;\npublic class CalculatorTest {\n&nbsp;&nbsp;&nbsp;&nbsp;@BeforeClass\n&nbsp;&nbsp;&nbsp;&nbsp;public static void setUp() throws Exception {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Properties properties = new Properties();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;properties.setProperty(\"openejb.embedded.remotable\", \"true\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/properties.setProperty(\"httpejbd.print\", \"true\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/properties.setProperty(\"httpejbd.indent.xml\", \"true\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EJBContainer.createEJBContainer(properties);\n&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;@Test\n&nbsp;&nbsp;&nbsp;&nbsp;public void test() throws Exception {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Service calculatorService = Service.create(\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new URL(\"https:\/\/127.0.0.1:4204\/Calculator?wsdl\"),\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new QName(\"https:\/\/superbiz.org\/wsdl\", \"CalculatorService\"));\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assertNotNull(calculatorService);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CalculatorWs calculator = calculatorService.getPort(CalculatorWs.class);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assertEquals(10, calculator.sum(4, 6));\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assertEquals(12, calculator.multiply(3, 4));\n&nbsp;&nbsp;&nbsp;&nbsp;}\n}<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Inspecting the messages<\/strong> in Web Service Example<\/h2>\n\n\n\n<p><strong>sum(int, int)<\/strong><\/p>\n\n\n\n<p><strong><em>Request SOAP message:<\/em><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;soap:Envelope xmlns:soap=\"https:\/\/schemas.xmlsoap.org\/soap\/envelope\/\"&gt;\n&nbsp;&nbsp;&lt;soap:Body&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;ns1:sum xmlns:ns1=\"https:\/\/superbiz.org\/wsdl\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;arg0&gt;4&lt;\/arg0&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;arg1&gt;6&lt;\/arg1&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/ns1:sum&gt;\n&nbsp;&nbsp;&lt;\/soap:Body&gt;\n&lt;\/soap:Envelope&gt;<\/pre>\n\n\n\n<p><strong><em>Response SOAP message:<\/em><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;soap:Envelope xmlns:soap=\"https:\/\/schemas.xmlsoap.org\/soap\/envelope\/\"&gt;\n&nbsp;&nbsp;&lt;soap:Body&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;ns1:sumResponse xmlns:ns1=\"https:\/\/superbiz.org\/wsdl\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;return&gt;10&lt;\/return&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/ns1:sumResponse&gt;\n&nbsp;&nbsp;&lt;\/soap:Body&gt;\n&lt;\/soap:Envelope&gt;<\/pre>\n\n\n\n<p><strong>multiply(int, int)<\/strong><\/p>\n\n\n\n<p><strong><em>Request SOAP message:<\/em><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;soap:Envelope xmlns:soap=\"https:\/\/schemas.xmlsoap.org\/soap\/envelope\/\"&gt;\n&nbsp;&nbsp;&lt;soap:Body&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;ns1:multiply xmlns:ns1=\"https:\/\/superbiz.org\/wsdl\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;arg0&gt;3&lt;\/arg0&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;arg1&gt;4&lt;\/arg1&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/ns1:multiply&gt;\n&nbsp;&nbsp;&lt;\/soap:Body&gt;\n&lt;\/soap:Envelope&gt;<\/pre>\n\n\n\n<p><strong><em>Response SOAP message:<\/em><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;soap:Envelope xmlns:soap=\"https:\/\/schemas.xmlsoap.org\/soap\/envelope\/\"&gt;\n&nbsp;&nbsp;&lt;soap:Body&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;ns1:multiplyResponse xmlns:ns1=\"https:\/\/superbiz.org\/wsdl\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;return&gt;12&lt;\/return&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/ns1:multiplyResponse&gt;\n&nbsp;&nbsp;&lt;\/soap:Body&gt;\n&lt;\/soap:Envelope&gt;<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>In this article, we will see the configuration of a simple web service Example. For this, we annotate a class with @WebService and @Stateless. Step 1: No external xml files are needed. The below class will be placed in a jar or war and deployed into a compliant Java EE server like TomEE. import javax.ejb.Stateless; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4524,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[42],"tags":[1274,1275,1273],"class_list":["post-4507","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java-tutorials","tag-endpoint-interface","tag-inspecting-the-messages","tag-web-service-example"],"_links":{"self":[{"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/posts\/4507","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/comments?post=4507"}],"version-history":[{"count":0,"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/posts\/4507\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/media\/4524"}],"wp:attachment":[{"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/media?parent=4507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/categories?post=4507"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/tags?post=4507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}