Summary
This tutorial has given you an in-depth look into enterprise Web services demonstrated on the Apache Geronimo application server. You should now be familiar with JAX-RPC-related concepts and their integration into the J2EE 1.4 platform. You've learned about several options for accessing external Web services and the exposure of your own Web services from both the Web tier and the EJB tier of your J2EE applications. With the help of the BookShop example application, this tutorial has shed some light on the configuration jungle you must navigate when developing Web services-enabled applications for the J2EE 1.4 platform.
Part 2 of this tutorial series will concentrate on registry access, SOAP attachments, message handlers, and Web services security. It will discuss and demonstrate the following aspects of enterprise Java Web services in detail:
- The Java API for XML Registries (JAXR): JAXR defines a standard Java API for accessing and programmatically interacting with various types of metadata registries, such as Universal Description, Discovery, and Integration (UDDI) and Electronic Business XML (ebXML).
- The SOAP with Attachments API for Java (SAAJ): SAAJ provides convenient ways to access the various parts of SOAP messages. This includes message headers and the option to include binary message attachments.
- Message handlers: Learn several ways to implement message IDs for conversational Web services, the implementation of appropriate message-encryption mechanisms following the WS-Security standard, and suitable logging strategies for Web service-related activities.
- SOAP faults: Gain insight into exception handling for Web services, including standard SOAP faults, Web services-related exception types, and checked user exceptions.
- The future of J2EE Web services: Get a preview of Web service-related plans for the upcoming J2EE 5 platform. You'll see that many of the pitfalls developers have encountered in the J2EE 1.4 platform have been addressed.
The author would like to express his sincere thanks to the Geronimo community, which kindly helped during the development of this tutorial through mailing lists and IRC chats. Special thanks to David Jencks, who spent considerable time explaining Geronimo-specific Web services handling and fixing several bugs encountered during the development of the BookShop example code.

