[Lab] Developing Bottum-up SOAP Web Service in Tomcat Container using JAX-WS RI

We did not had to do any extra configurations for deploying our web service class in Glassfish server. This is because Java EE 5 and above compliant application servers such as Glassfish, comply to JSR 109 (Web services 1.2/1.3) and JSR 224 (JAX-WS 2.0/2.1/2.2).

However, to deploy web service on a web container like tomcat, you will need to do some additional steps. These additional steps include creating a a proprietary deployment descriptor file called sun-jaxws.xml, making some entries in the standard deployment descriptor web.xml and placing some JAX-WS jars in the lib folder of Apache Tomcat.



Before trying out this example, you will need to configure Tomcat to work with eclipse as given @ http://javajee.com/configuring-apache-tomcat-with-eclipse.


Getting Started

  • Start the Eclipse (Java EE eclipse configured with Glassfish server)

  • Create a Dynamic Web Project selecting Glassfish server as the Target runtime.


Screenshot: Dynamic Web Project


Web Service class

package com.javajee.webservices.soap;

import javax.jws.WebService;



public class MyWebService {

     public String myServiceMethod() {

          return "Message From myServiceMethod";



Note: This is the same class used for the Glassfish example.



<?xml version="1.0" encoding="UTF-8"?>


<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"




     <endpoint name="MyWebService"




          url-pattern="/mws" />




  • Place the file under WEB-INF folder.

  • The <endpoints> element of sun-jaxws.xml contains one or more <endpoint> elements.

  • Each endpoint represents a port in the WSDL.



<?xml version="1.0" encoding="UTF-8"?>

<web-app 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_3_1.xsd"

     id="WebApp_ID" version="3.1">










  • This file has to be present under WEB-INF folder.

  • The WSServletContextListener configured in the web.xml as a listener class parses sun-jaxws.xml and sets up all deployed endpoints.


Dependent Jars

Download JAX-WS RI from https://jax-ws.java.net  and copy below jars to the lib folder of Tomcat:

  • jaxws-rt.jar

  • jaxb-core.jar

  • jaxb-impl.jar

  • streambuffer.jar

  • policy.jar

  • stax-ex.jar

  • gmbal-api-only.jar

  • management-api.jar

  • ha-api.jar

Note: You may also copy all jars from jaxws-ri\lib into tomcat lib directory to save time.


Verifying the service

Once the war (with above contents) is deployed, you can access the url as specified in your sun-jaxws.xml.

In this case it will be: http://localhost:8080/WebServiceTomcatDemo/mws

You should get the result as below.


You may also look into the note on common issues while deploying JAX-WS services in Tomcat.

Search the Web

Custom Search

Searches whole web. Use the search in the right sidebar to search only within javajee.com!!!

Quick Notes Finder Tags

Activities (1) advance java (1) agile (3) App Servers (6) archived notes (2) Arrays (1) Best Practices (12) Best Practices (Design) (3) Best Practices (Java) (7) Best Practices (Java EE) (1) BigData (3) Chars & Encodings (6) coding problems (2) Collections (15) contests (3) Core Java (All) (52) course plan (2) Database (12) Design patterns (8) dev tools (3) downloads (2) eclipse (9) Essentials (1) examples (14) Exceptions (4) exercises (6) Getting Started (18) Groovy (2) hadoop (4) hibernate (77) hibernate interview questions (6) History (1) Hot book (4) http monitoring (2) Inheritance (4) intellij (1) java 8 notes (4) Java 9 (1) Java Concepts (7) Java Core (4) java ee exercises (1) java ee interview questions (2) Java Elements (16) Java Environment (1) Java Features (4) java interview points (4) java interview questions (4) javajee initiatives (1) javajee thoughts (3) Java Performance (6) Java Programmer 1 (4) Java Programmer 2 (2) Javascript Frameworks (1) Java SE Professional (1) JSP (1) linked list (3) maven (1) Multithreading (16) NFR (1) No SQL (1) Object Oriented (9) OCPJP (4) OCPWCD (1) OOAD (3) Operators (4) Overloading (2) Overriding (2) Overviews (1) policies (1) programming (1) Quizzes (17) references (2) resources (1) restful web service (3) Searching (1) security (10) Servlets (8) Servlets and JSP (31) Sorting (1) source code management (1) spring (4) spring boot (1) Spring Examples (1) Spring Features (1) spring jpa (1) Stack (1) Streams & IO (3) Strings (11) SW Developer Tools (2) testing (1) user interface (1) vxml (8) web services (1) Web Technologies (1) Web Technology Books (1) youtube (1)