I have found the following JAX-WS introductions to be especially useful:
- Developing Web Services Using JAX-WS (Sun Enterprise Java Technical Tips)
- Developing Web Services Using EJB 3 (Sun Enterprise Java Technical Tips)
- Java EE 5 Tutorial: Web Services (PDF)
- JAX-WS Web Services Without Java EE Containers (java.net)
- JAX-WS Annotations (IBM)
- Introducing JAX-WS 2.0 With the Java SE 6 Platform, Part 1 and Part 2
These are all good resources for background and an introduction to web services with JAX-WS, but I have found the one listed first to be especially useful in a GlassFish environment. The main differentiator between this article and many other fine articles on the subject is that the author of this article provided the command-line syntax for running javac and the various GlassFish commands (such as asadmin commands and the wsgen and wsimport commands).
Many introductions provide Ant targets for the reader to run or illustrate how to use a specific IDE to do things (which this article does as well), but it is nice to have an author go a little further and actually provide the low-level command-line syntax to use. This allows developers who almost always seem to be in a hurry to get right at the new material without needing to make sure that the appropriate Ant build.xml file is downloaded. It also frees the developer from being required to use the IDE the author used. In this case, the developer would still be required to use GlassFish to make use of these command-line examples, but that is unavoidable due to the proprietary nature of these administrative tools.
I have also followed with interest the debate about web services development with JAX-WS with a bottom-up approach (annotation Java classes and generating appropriate artifacts) versus with a top-down approach (starting with WSDL). The article How to Develop a JAX-WS Service from a Web Service Description Language (WSDL) makes a case for using the top-down approach even though the author acknowledges that it is simpler to use the bottom-up approach. I can see where there are advantages to using the top-down approach for large, complex systems maintained by many developers, but I really like the bottom-up approach for smaller applications, demonstrations, and prototypes.
Not everyone is happy with JAX-WS. Richard Monson-Haefel has posted (2006) two blogs (JAX-WS is Bad, Bad! and Redeemed! JAX-WS Still Sucks) describing things he finds unsatisfactory about JAX-WS.
UPDATE (10 November 2007): Made some minor cosmetic changes and spelling fixes, but did not change anything of substance.