I have been going through the JAX-WS RI documentation and came across the terms non-Java EE 5 servlet and Java EE 5 servlet containers.
The documentation/samples discusses how to use JAX-WS in a non-Java EE 5 servlet container using a proprietary deployment descriptor sun-jaxws.xml and servlet com.sun.xml.ws.transport.http.servlet.WSServlet. This means that you can run JAX-WS RI applications in any servlet container that has been enabled with the JAX-WS RI. Applications that use the proprietary DD and servlet will run in a JAX-WS RI enabled Java EE 5 servlet container, but they will be non-portable. If you wish to use JAX-WS in a Java EE container in a Java EE portable manner you need to use the standard Java EE 5 deployment descriptor; please refer to the Java EE 5 or Glassfish documentation/samples
So what exactly are the non-Java EE 5 servlet and Java EE 5 servlet containers ? Is it because of the different java and servlet specifications versions?
JAX-WS implementation introduced in J2EE 5.
Non-full J2EE servlet container like Tomcat does not understand sun-jaxws.xml ,
so you need to add a library to make it work.