On JDK 1.5 through http.jar distributed with the JAX-WS 2.2 FCS
RI bundle

Bundled with JDK 6

Any other container that supports Servlet 2.4, such as Tomcat,
Jetty, Geronimo, JBoss, Resin, ... You name it!

This release brings in the highly pluggable framework through abstractions such as
Tube and
Message. Refer to the latest
architecture document.
This architecture document is a glorified javadoc which includes all the JAX-WS
RI specific APIs. JAX-WS RI 2.2.1 has many bug fixes made for interoperability with .NET 3.0. This is made mostly
possible due to WSIT, which uses JAX-WS plugabble architecture to plug in support
for WS-Metadata, WS-Policy, WS-ReliableMessaging, WS-Transaction, WS-SecureConversation
and WS-Security.

If you
wish to use JAX-WS RI 2.2.1 in a Java EE container in a Java EE portable manner you need to use the
standard Java EE 6 deployment descriptor; please refer to the
Java EE 6 or
Glassfish
documentation/samples. The majority of the documentation included with JAX-WS is
valid with Java EE 6 as well.

JDK 6u4 includes JAX-WS 2.1 and JAXB 2.1 API and RI. JAX-WS RI 2.2.1 includes RI of JAX-WS/JAXB 2.2. In order to run JAX-WS RI 2.2.1 you would need to specify ONLY jaxws-api.jar, and jaxb-api.jar jars using the
Java Endorsed Standards Override Mechanism

Although JAX-WS customizations are portable across implementations, the names of
WSDL and schema files generated are not specified. Therefore each vendor may and
most likely will generate different names. Therefore, when switching between
implementations of JAX-WS, it may be necessary to modify your customization files
to reflect different WSDL and schema file names.

This holds true for different releases of the JAX-WS RI. The JAX-WS RI may in
each release change these file names to resolve bugs. If and when this does occur,
a developer would need to change the filenames in their customization files to match
the new file names.

A
bug in Apt ant task makes it not work by default.
Workaround is to use fork="true" option in the apt task.