Course Content
What is Spring Web Services?
- Introduction
- Runtime environment
Why Contract First?
- Introduction
- Object/XML Impedance Mismatch
- XSD extensions
- Unportable types
- Cyclic graphs
- Contract-first versus Contract-last
- Fragility
- Performance
- Reusability
- Versioning
Writing Contract-First Web Services
Introduction
Messages
Data Contract
Service contract
Creating the project
Implementing the Endpoint
- Handling the XML Message
- Routing the Message to the Endpoint
Publishing the WSD
Shared components
- Web service messages
- WebServiceMessage
- SoapMessage
- Message Factories
- AxiomSoapMessageFactory
- SOAP 1.1 or 1.2
- MessageContext
- Handling XML With XPath
- XPathExpression
- XPathTemplate
- Message Logging and Tracing
Transports
- MessageDispatcherServlet
- Automatic WSDL exposure
- Wiring up Spring-WS in a DispatcherServlet
- JMS transport
- Email transport
- Embedded HTTP Server transport
Endpoints
- AbstractDomPayloadEndpoint and other DOM endpoints
- AbstractMarshallingPayloadEndpoint
- Using Spring Validator with Marshalling Endpoints
- AbstractValidatingMarshallingPayloadEndpoint
- AbstractFaultCreatingValidatingMarshallingPayloadEndpoint
- @Endpoint
- @XPathParam
- @Endpoint
- @XPathParam
Endpoint mappings using:
- PayloadRootQNameEndpointMapping
- SoapActionEndpointMapping
- MethodEndpointMapping
- WS-Addressing
- SimpleActionEndpointMapping
- AnnotationActionEndpointMapping
- Intercepting requests - the EndpointInterceptor interface
- PayloadLoggingInterceptor and SoapEnvelopeLoggingInterceptor
- PayloadValidatingInterceptor
- PayloadTransformingInterceptor
Introduction Using the client-side API
- WebServiceTemplate
- URIs and Transports
- Message factories
- Sending and receiving a WebServiceMessage
- Sending and receiving POJOs - marshalling and unmarshalling
- WebServiceMessageCallback
- WS-Addressing
Securing your Web services with Spring-WS
- Introduction
- XwsSecurityInterceptor
- Keystores
- KeyTool
- KeyStoreFactoryBean
- KeyStoreCallbackHandler
- Authentication
- Plain Text Username Authentication
- Digest Username Authentication
- Certificate Authentication
- Digital Signatures
- Verifying Signatures
- Signing Messages
- Encryption and Decryption
- Decryption
- Encryption
- Wss4jSecurityInterceptor
- Configuring Wss4jSecurityInterceptor
- Handling Digital Certificates
- CryptoFactoryBean
- Authentication
- Validating Username Token
- Adding Username Token
- Certificate Authentication
- Security Timestamps
- Validating Timestamps
- Adding Timestamps
- Digital Signatures
- Verifying Signatures
- Signing Messages
- Signature Confirmation
- Decryption
- Encryption