{"id":4185,"date":"2020-07-31T16:33:41","date_gmt":"2020-07-31T11:03:41","guid":{"rendered":"https:\/\/www.h2kinfosys.com\/blog\/?p=4185"},"modified":"2023-05-17T13:38:05","modified_gmt":"2023-05-17T08:08:05","slug":"webservice-using-apache-cxf-tomcat","status":"publish","type":"post","link":"https:\/\/www.h2kinfosys.com\/blog\/webservice-using-apache-cxf-tomcat\/","title":{"rendered":"WebService using Apache CXF\/Tomcat"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\"><strong>WebService<\/strong> <strong>using Apache CXF\/Tomcat<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>By using the JAX-WS application, we will use the Apache CXF-first approach like the earlier POJO application.&nbsp;<\/li>\n\n\n\n<li>First, we annotate the interface with a @WebService tag. After that, we will implement this interface.<\/li>\n<\/ul>\n\n\n\n<p>Let&#8217;s Implementing Web Interface, the implementation of the web interface is shown here:<\/p>\n\n\n\n<p><strong><em>HelloWorld1.java<\/em><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">public class HelloWorld1 implements HelloWorld {\n&nbsp;&nbsp;&nbsp;@Override\n&nbsp;&nbsp;&nbsp;public String demo(String name) {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return (\"hello \" + name);\n&nbsp;&nbsp;&nbsp;}\n}\n<\/pre>\n\n\n\n<p>The demo method is annotated with the @Override tag. The method returns a &#8220;hello&#8221; message to the caller.<\/p>\n\n\n\n<p><strong><em>Server1.java<\/em><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">public class Server1 {\n&nbsp;&nbsp;&nbsp;public static void main(String[] arg) throws Exception {\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HelloWorld implementor = new HelloWorld();\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Endpoint.publish(\"http:\/\/localhost:9090\/HelloServerPort\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;implementor,\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new LoggingFeature());\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(\"Server is ready...\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.sleep(4 * 60 * 1000);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(\"Server is existing ...\");\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.exit(0);\n&nbsp;&nbsp;&nbsp;}\n}\n<\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>If we want to deploy our server, we need to make a few more modifications to our project, as listed below.<\/li>\n\n\n\n<li><a href=\"https:\/\/serverfault.com\/questions\/176525\/what-is-deploying-a-server\" rel=\"nofollow noopener\" target=\"_blank\">Deploying Server<\/a><\/li>\n\n\n\n<li>Finally, we need to deploy the server application, so we need to make one more modification in pom.xml&nbsp;<\/li>\n<\/ul>\n\n\n\n<p><strong>The code what we need to add into your pom.xml is given below \u2212<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;profiles&gt;\n&nbsp;&nbsp;&nbsp;&lt;profile&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;id&gt;server&lt;\/id&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;build&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;defaultGoal&gt;test&lt;\/defaultGoal&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;plugins&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;plugin&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;org.codehaus.mojo&lt;\/groupId&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;exec-maven-plugin&lt;\/artifactId&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;1.6.0&lt;\/version&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;executions&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;execution&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;phase&gt;test&lt;\/phase&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;goals&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;goal&gt;java&lt;\/goal&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/goals&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;configuration&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;mainClass&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;com.demo.cxf.jaxws.helloworld.Server\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/mainClass&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/configuration&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/execution&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/executions&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/plugin&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/plugins&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/build&gt;\n&nbsp;&nbsp;&nbsp;&lt;\/profile&gt;\n&lt;\/profiles&gt;<\/pre>\n\n\n\n<p>Before deploying the application, we will have to add two more files to your project.<\/p>\n\n\n\n<p><strong><em>Web.xml<\/em><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&nbsp;&nbsp;&lt;display-name&gt;cxf&lt;\/display-name&gt;\n&nbsp;&nbsp;&nbsp;&lt;servlet&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;description&gt;Apache CXF Endpoint&lt;\/description&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;display-name&gt;cxf&lt;\/display-name&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-name&gt;cxf&lt;\/servlet-name&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-class&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;org.apache.cxf.transport.servlet.CXFServlet\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/servlet-class&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;load-on-startup&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/load-on-startup&gt;\n&nbsp;&nbsp;&nbsp;&lt;\/servlet&gt;\n&nbsp;&nbsp;&nbsp;&lt;servlet-mapping&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-name&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cxf\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/servlet-name&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;url-pattern&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/services\/*\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/url-pattern&gt;\n&nbsp;&nbsp;&nbsp;&lt;\/servlet-mapping&gt;\n&nbsp;&nbsp;&nbsp;&lt;session-config&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;session-timeout&gt;60&lt;\/session-timeout&gt;\n&nbsp;&nbsp;&nbsp;&lt;\/session-config&gt;\n&lt;\/web-app&gt;\n<\/pre>\n\n\n\n<p><strong><em>Final pom.xml file:<\/em><\/strong><\/p>\n\n\n\n<p>It includes many more dependencies.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;modelVersion&gt;4.0.0&lt;\/modelVersion&gt;\n&nbsp;&nbsp;&nbsp;&lt;groupId&gt;com.example&lt;\/groupId&gt;\n&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;cxf-jaxws&lt;\/artifactId&gt;\n&nbsp;&nbsp;&nbsp;&lt;version&gt;1.0&lt;\/version&gt;\n&nbsp;&nbsp;&nbsp;&lt;packaging&gt;jar&lt;\/packaging&gt;\n&nbsp;&nbsp;&nbsp;&lt;properties&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;project.build.sourceEncoding&gt;UTF-8&lt;\/project.build.sourceEncoding&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;maven.compiler.source&gt;1.8&lt;\/maven.compiler.source&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;maven.compiler.target&gt;1.8&lt;\/maven.compiler.target&gt;\n&nbsp;&nbsp;&nbsp;&lt;\/properties&gt;\n&nbsp;&nbsp;&nbsp;&lt;profiles&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;profile&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;id&gt;server&lt;\/id&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;build&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;defaultGoal&gt;test&lt;\/defaultGoal&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;plugins&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;plugin&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;org.codehaus.mojo&lt;\/groupId&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;exec-maven-plugin&lt;\/artifactId&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;1.6.0&lt;\/version&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;executions&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;execution&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;phase&gt;test&lt;\/phase&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;goals&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;goal&gt;java&lt;\/goal&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/goals&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;configuration&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;mainClass&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;com.example.cxf.jaxws.helloworld.Server\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/mainClass&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/configuration&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/execution&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/executions&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/plugin&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/plugins&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/build&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/profile&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;profile&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;id&gt;client&lt;\/id&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;build&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;defaultGoal&gt;test&lt;\/defaultGoal&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;plugins&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;plugin&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;org.codehaus.mojo&lt;\/groupId&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;exec-maven-plugin&lt;\/artifactId&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;executions&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;execution&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;phase&gt;test&lt;\/phase&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;goals&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;goal&gt;java&lt;\/goal&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;goals&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;configuration&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;mainClass&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;com.example.cxf.jaxws.helloworld.Client\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/mainClass&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/configuration&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/execution&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/executions&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/plugin&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/plugins&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/build&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/profile&gt;\n&nbsp;&nbsp;&nbsp;&lt;\/profiles&gt;\n&nbsp;&nbsp;&nbsp;&lt;dependencies&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dependency&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;org.apache.cxf&lt;\/groupId&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;cxf-rt-frontend-jaxws&lt;\/artifactId&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;3.3.0&lt;\/version&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/dependency&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dependency&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;org.apache.cxf&lt;\/groupId&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;cxf-rt-transports-http&lt;\/artifactId&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;3.3.0&lt;\/version&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/dependency&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dependency&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;org.apache.cxf&lt;\/groupId&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;cxf-rt-features-logging&lt;\/artifactId&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;3.3.0&lt;\/version&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/dependency&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;dependency&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;groupId&gt;org.apache.cxf&lt;\/groupId&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;artifactId&gt;cxf-rt-transports-http-jetty&lt;\/artifactId&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;version&gt;3.3.0&lt;\/version&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/dependency&gt;\n&nbsp;&nbsp;&nbsp;&lt;\/dependencies&gt;\n&lt;\/project&gt;\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Running the HelloWorld Service<\/strong><\/h2>\n\n\n\n<p>Now, you are ready to run the web app. In the command window, run the build script using the following command.<\/p>\n\n\n\n<p>mvn clean install<br>mvn -Pserver<\/p>\n\n\n\n<p>Console Message\u2212<br>INFO: Setting the server&#8217;s publish address to be http:\/\/localhost:9090\/HelloServerPort<\/p>\n\n\n\n<p>Server is ready\u2026<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong><strong>WebService<\/strong> <strong>using<\/strong> APACHE CXF:<\/strong><\/h2>\n\n\n\n<p>Here&#8217;s, we will show you how to deploy the JAX-WS web services on <a href=\"https:\/\/www.h2kinfosys.com\/blog\/installing-web-server-tomcat\/\">Tomcat servlet <\/a>container.&nbsp;<\/p>\n\n\n\n<p><strong><em>HelloWorld.java<\/em><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">import javax.jws.WebMethod;\nimport javax.jws.WebService;\nimport javax.jws.soap.SOAPBinding;\nimport javax.jws.soap.SOAPBinding.Style;\n\/\/Service Endpoint Interface\n@WebService\n@SOAPBinding(style = Style.RPC)\npublic interface HelloWorld{\n&nbsp;@WebMethod String getHelloWorldAsString();\n}\n<\/pre>\n\n\n\n<p><strong><em>HelloWorld1.java<\/em><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">import javax.jws.WebService;\n\/\/Service Implementation Bean\n@WebService(endpointInterface = \"com.demo.HelloWorld\")\npublic class HelloWorldImpl implements HelloWorld{\n&nbsp;@Override\n&nbsp;public String getHelloWorldAsString() {\n&nbsp;&nbsp;return \"Hello World JAX-WS\";\n&nbsp;}\n}\n<\/pre>\n\n\n\n<p><strong><em>sun-jaxws.xml<\/em><\/strong><\/p>\n\n\n\n<p>Here we are creating a web service deployment descriptor, which is also known as JAX-WS RI deployment descriptor \u2013 sun-jaxws.xml.<\/p>\n\n\n\n<p><strong><em>sun-jaxws.xml<\/em><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;endpoint\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;name=\"HelloWorld\"\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;implementation=\"com.demo.HelloWorld1\"\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url-pattern=\"\/hello\"\/&gt;\n&lt;\/endpoints&gt;<\/pre>\n\n\n\n<p><strong><em>web.xml<\/em><\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;web-app&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;listener&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;listener-class&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;com.sun.xml.ws.transport.http.servlet.WSServletContextListener\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/listener-class&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/listener&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-name&gt;hello&lt;\/servlet-name&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-class&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;com.sun.xml.ws.transport.http.servlet.WSServlet\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/servlet-class&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;load-on-startup&gt;1&lt;\/load-on-startup&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/servlet&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-mapping&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;servlet-name&gt;hello&lt;\/servlet-name&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;url-pattern&gt;\/hello&lt;\/url-pattern&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/servlet-mapping&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;session-config&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;session-timeout&gt;120&lt;\/session-timeout&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/session-config&gt;\n&lt;\/web-app&gt;\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>WAR Content<\/strong><\/h2>\n\n\n\n<p>We are using Ant, Maven, or JAR command to build a WAR file to include everything inside.&nbsp;<br><strong>File : <\/strong>build.xml<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;project name=\"HelloWorldWS\" default=\"dist\" basedir=\".\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;description&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Web Services build file\n&nbsp;&nbsp;&nbsp;&nbsp;&lt;\/description&gt;\n&nbsp;&nbsp;&lt;!-- set global properties for this build --&gt;\n&nbsp;&nbsp;&lt;property name=\"src\" location=\"src\"\/&gt;\n&nbsp;&nbsp;&lt;property name=\"build\" location=\"build\"\/&gt;\n&nbsp;&nbsp;&lt;property name=\"dist\"&nbsp; location=\"dist\"\/&gt;\n&nbsp;&nbsp;&lt;property name=\"webcontent\"&nbsp; location=\"WebContent\"\/&gt;\n&nbsp;&nbsp;&lt;target name=\"init\"&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;!-- Create the time stamp --&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tstamp\/&gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;mkdir dir=\"${build}\"\/&gt;\n&nbsp;&nbsp;&lt;\/target&gt;\n&nbsp;&nbsp;&lt;target name=\"compile\" depends=\"init\"\n&nbsp;&nbsp;&nbsp;description=\"compile the source \" &gt;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;javac srcdir=\"${src}\" destdir=\"${build}\"\/&gt;\n&nbsp;&nbsp;&lt;\/target&gt;\n&nbsp;&nbsp;&lt;target name=\"war\" depends=\"compile\"\n&nbsp;&nbsp;&nbsp;description=\"generate the distribution war\" &gt;\n&nbsp;&nbsp;&nbsp;&lt;mkdir dir=\"${dist}\/war\"\/&gt;\n&nbsp;&nbsp;&nbsp;&lt;copydir dest=\"${dist}\/war\/build\/WEB-INF\/\" src=\"${webcontent}\/WEB-INF\/\" \/&gt;\n&nbsp;&nbsp;&nbsp;&lt;copydir dest=\"${dist}\/war\/build\/WEB-INF\/classes\/\" src=\"${build}\" \/&gt;\n&nbsp;&lt;jar jarfile=\"${dist}\/war\/HelloWorld-${DSTAMP}.war\" basedir=\"${dist}\/war\/build\/\"\/&gt;\n&nbsp;&nbsp;&lt;\/target&gt;\n&lt;\/project&gt;\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Deployment<\/strong><\/h2>\n\n\n\n<p>You can access this URL: http:\/\/localhost:8081\/HelloWorld\/hello, to check the project has been deployed or not.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WebService using Apache CXF\/Tomcat Let&#8217;s Implementing Web Interface, the implementation of the web interface is shown here: HelloWorld1.java public class HelloWorld1 implements HelloWorld { &nbsp;&nbsp;&nbsp;@Override &nbsp;&nbsp;&nbsp;public String demo(String name) { &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return (&#8220;hello &#8221; + name); &nbsp;&nbsp;&nbsp;} } The demo method is annotated with the @Override tag. The method returns a &#8220;hello&#8221; message to the caller. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4208,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[42],"tags":[1168,1169,1167],"class_list":["post-4185","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java-tutorials","tag-apache-cxf","tag-tomcat","tag-webservice-using-apache"],"_links":{"self":[{"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/posts\/4185","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=4185"}],"version-history":[{"count":0,"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/posts\/4185\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/media\/4208"}],"wp:attachment":[{"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/media?parent=4185"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/categories?post=4185"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.h2kinfosys.com\/blog\/wp-json\/wp\/v2\/tags?post=4185"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}