Spring Web Services

Reference Documentation

Arjen Poutsma

Rick Evans

Tareq Abed Rabbo

2.1.4.RELEASE

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.6.3. Providing the Service and Stub implementation
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.3.6. XMPP transport
5.4. Endpoints
5.4.1. @Endpoint handling methods
5.4.1.1. Handling method parameters
5.4.1.2. Handling method return types
5.5. Endpoint mappings
5.5.1. WS-Addressing
5.5.1.1. AnnotationActionEndpointMapping
5.5.2. Intercepting requests - the EndpointInterceptor interface
5.5.2.1. PayloadLoggingInterceptor and SoapEnvelopeLoggingInterceptor
5.5.2.2. PayloadValidatingInterceptor
5.5.2.3. PayloadTransformingInterceptor
5.6. Handling Exceptions
5.6.1. SoapFaultMappingExceptionResolver
5.6.2. SoapFaultAnnotationExceptionResolver
5.7. Server-side testing
5.7.1. Writing server-side integration tests
5.7.2. RequestCreator and RequestCreators
5.7.3. ResponseMatcher and ResponseMatchers
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
6.3. Client-side testing
6.3.1. Writing client-side integration tests
6.3.2. RequestMatcher and RequestMatchers
6.3.3. ResponseCreator and ResponseCreators
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.2.5. Security Exception Handling
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
7.3.7. Security Exception Handling
III. Other Resources
Bibliography