Spring Web Services - Reference Documentation

Authors

Arjen Poutsma, Rick Evans, Tareq Abed Rabbo

1.5.9

Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.


Preface
I. Introduction
1. What is Spring Web Services?
1.1. Introduction
1.2. Runtime environment
2. Why Contract First?
2.1. Introduction
2.2. Object/XML Impedance Mismatch
2.2.1. XSD extensions
2.2.2. Unportable types
2.2.3. Cyclic graphs
2.3. Contract-first versus Contract-last
2.3.1. Fragility
2.3.2. Performance
2.3.3. Reusability
2.3.4. Versioning
3. Writing Contract-First Web Services
3.1. Introduction
3.2. Messages
3.2.1. Holiday
3.2.2. Employee
3.2.3. HolidayRequest
3.3. Data Contract
3.4. Service contract
3.5. Creating the project
3.6. Implementing the Endpoint
3.6.1. Handling the XML Message
3.6.2. Routing the Message to the Endpoint
3.7. Publishing the WSDL
II. Reference
4. Shared components
4.1. Web service messages
4.1.1. WebServiceMessage
4.1.2. SoapMessage
4.1.3. Message Factories
4.1.3.1. SaajSoapMessageFactory
4.1.3.2. AxiomSoapMessageFactory
4.1.3.3. SOAP 1.1 or 1.2
4.1.4. MessageContext
4.2. TransportContext
4.3. Handling XML With XPath
4.3.1. XPathExpression
4.3.2. XPathTemplate
4.4. Message Logging and Tracing
5. Creating a Web service with Spring-WS
5.1. Introduction
5.2. The MessageDispatcher
5.3. Transports
5.3.1. MessageDispatcherServlet
5.3.1.1. Automatic WSDL exposure
5.3.2. Wiring up Spring-WS in a DispatcherServlet
5.3.3. JMS transport
5.3.4. Email transport
5.3.5. Embedded HTTP Server transport
5.4. Endpoints
5.4.1. AbstractDomPayloadEndpoint and other DOM endpoints
5.4.2. AbstractMarshallingPayloadEndpoint
5.4.3. Using Spring Validator with Marshalling Endpoints
5.4.3.1. AbstractValidatingMarshallingPayloadEndpoint
5.4.3.2. AbstractFaultCreatingValidatingMarshallingPayloadEndpoint
5.4.4. @Endpoint
5.4.4.1. @XPathParam
5.5. Endpoint mappings
5.5.1. PayloadRootQNameEndpointMapping
5.5.2. SoapActionEndpointMapping
5.5.3. MethodEndpointMapping
5.5.4. WS-Addressing
5.5.4.1. SimpleActionEndpointMapping
5.5.4.2. AnnotationActionEndpointMapping
5.5.5. Intercepting requests - the EndpointInterceptor interface
5.5.5.1. PayloadLoggingInterceptor and SoapEnvelopeLoggingInterceptor
5.5.5.2. PayloadValidatingInterceptor
5.5.5.3. PayloadTransformingInterceptor
5.6. Handling Exceptions
5.6.1. SoapFaultMappingExceptionResolver
5.6.2. SoapFaultAnnotationExceptionResolver
6. Using Spring Web Services on the Client
6.1. Introduction
6.2. Using the client-side API
6.2.1. WebServiceTemplate
6.2.1.1. URIs and Transports
6.2.1.2. Message factories
6.2.2. Sending and receiving a WebServiceMessage
6.2.3. Sending and receiving POJOs - marshalling and unmarshalling
6.2.4. WebServiceMessageCallback
6.2.4.1. WS-Addressing
6.2.5. WebServiceMessageExtractor
7. Securing your Web services with Spring-WS
7.1. Introduction
7.2. XwsSecurityInterceptor
7.2.1. Keystores
7.2.1.1. KeyTool
7.2.1.2. KeyStoreFactoryBean
7.2.1.3. KeyStoreCallbackHandler
7.2.2. Authentication
7.2.2.1. Plain Text Username Authentication
7.2.2.2. Digest Username Authentication
7.2.2.3. Certificate Authentication
7.2.3. Digital Signatures
7.2.3.1. Verifying Signatures
7.2.3.2. Signing Messages
7.2.4. Encryption and Decryption
7.2.4.1. Decryption
7.2.4.2. Encryption
7.3. Wss4jSecurityInterceptor
7.3.1. Configuring Wss4jSecurityInterceptor
7.3.2. Handling Digital Certificates
7.3.2.1. CryptoFactoryBean
7.3.3. Authentication
7.3.3.1. Validating Username Token
7.3.3.2. Adding Username Token
7.3.3.3. Certificate Authentication
7.3.4. Security Timestamps
7.3.4.1. Validating Timestamps
7.3.4.2. Adding Timestamps
7.3.5. Digital Signatures
7.3.5.1. Verifying Signatures
7.3.5.2. Signing Messages
7.3.5.3. Signature Confirmation
7.3.6. Encryption and Decryption
7.3.6.1. Decryption
7.3.6.2. Encryption
8. Marshalling XML using O/X Mappers
8.1. Introduction
8.2. Marshaller and Unmarshaller
8.2.1. Marshaller
8.2.2. Unmarshaller
8.2.3. XmlMappingException
8.3. Using Marshaller and Unmarshaller
8.4. XML Schema-based Configuration
8.5. JAXB
8.5.1. Jaxb1Marshaller
8.5.1.1. XML Schema-based Configuration
8.5.2. Jaxb2Marshaller
8.5.2.1. XML Schema-based Configuration
8.6. Castor
8.6.1. CastorMarshaller
8.6.2. Mapping
8.7. XMLBeans
8.7.1. XmlBeansMarshaller
8.7.1.1. XML Schema-based Configuration
8.8. JiBX
8.8.1. JibxMarshaller
8.8.1.1. XML Schema-based Configuration
8.9. XStream
8.9.1. XStreamMarshaller
III. Other Resources
Bibliography