Bundled JAX-WS lacks integration with servlet containers, as it is intended to be used only to offer JAX-WS services inside standalone Java applications (WTF!?!?!?).
Of course, one could think of implementing a servlet that does that integration, so you would not have to include another copy of Metro in your WAR. But it is easier to just include an external "full" copy, it bloats the WAR but should not have a great performance penalty. Furthermore, in this way you can control which version you use, avoiding to get stuck with the version that was included in your JRE.
Anyway, Sun usually changed package names in bundled libraries so they would not collide with external ones, Therefore, if the servlet would exist (it does not), it would probably be called:
com.sun.xml. internal. ws.transport.http.servlet.WSServlet
This is very annoying as they also changed some configuration properties in the same way (e.g.: timeout related ones), so if you use the bundled JAX-WS you have to use
com.sun.xml. internal.... style configuration properties,
but if you use some external JAX-WS you have to use
com.sun.xml.... style configuration properties.
Thanks Sun!!