Overview of Web Services
Why Web Services?
Service-Oriented Architecture
HTTP and XML
Simple Object Access Protocol (SOAP)
Web Service Description Language (WSDL)
Universal Description, Discovery and Integration (UDDI)
The WS-I Basic and Related Profiles
REST
Web Services for Java EE
Hosting Web Services: Scenarios
Invoking Web Services: Scenarios
Web Services for Java EE (WS4JEE)
The Automated Approach: JAX-WS and JAXB
Manual Options: SAAJ and JAXP
Portable Web-Services Metadata
Service Registries: JAXR
The Simple Object Access Protocol
Messaging Model
Namespaces
SOAP over HTTP
The SOAP Envelope
The Message Header
The Message Body
SOAP Faults
Attachments
The Java API for XML Binding
The Need for Data Binding
XML Schema
Two Paths
JAXB Compilation
Mapping Schema Types to Java
Java-to-XML Mapping Using Annotations
Marshaling and Unmarshaling
Working with JAXB Object Models
In-Memory Validation
Web Services Description Language
Web Services as Component-Based Software
The Need for an IDL
Web Services Description Language
WSDL Information Model
The Abstract Model -- Service Semantics
Message Description
Messaging Styles
The Concrete Model -- Ports, Services, Locations
Extending WSDL -- Bindings
Service Description
The Java API for XML-Based Web Services
Two Paths
How It Works: Build Time and Runtime
The Service Endpoint Interface
Working from WSDL
Working from Java
RPC and Document Styles
One-Way Messaging
Binary Protocols
WSDL-to-Java Development
The @WebService Annotation
Generated Code
Compilation and Assembly
Deployment
Runtime Behavior
Scope of Code Generation
More JAXB: Mapping Collections
More JAXB: Mapping Enumerations
Client-Side Development
Stubs and Proxies
Generated Code
Locating a Service
Invoking a Service
Java-to-WSDL Development
The @WebMethod, @XmlParam, and Related Annotations
Scope of Code Generation
More JAXB: Mapping Inheritance
Controlling the XML Model
Controlling the WSDL Description
JAX-WS Best Practices
Which Way to Go?
Interoperability Impact
Portability Impact
Polymorphism in Web Services
Web Services as Java EE Components
Lifecycle Annotations
Context Interfaces
Provider and Dispatch APIs
Stepping Down
The Provider<T> Interface
Implementing a Provider
JAXB Without WSDL
Integrating JAXP
The Dispatch<T> Interface
Building Clients
The SOAP with Attachments API for Java
The SAAJ Object Model
Parsing a SOAP Message
Reading Message Content
Working with Namespaces
Creating a Message
Setting Message Content
Message Handlers
Handling SOAP Headers
Servlet Endpoint Context
MessageContext and SOAPMessageContext
Message Handlers and Handler Chains
Processing Model and Patterns
Client-Side Handlers
Appendix A. Learning Resources
Appendix B. Compatibility and Migration
JAX-RPC
Comparing JAX-RPC and JAX-WS
Using JAX-RPC and JAX-WS Together
SOAP "Section 5" Encoding