User intensity level
Who the course is for
Java SE and Java EE developers who consume and/or expose SOAP web services or use AJAX to communicate with Java back-end using RESTful web services (XML or JSON)
What we teach you
- SOAP, WSDL and WS-I Profile with focus on interoperability
- REST, XML and JSON for AJAX and Android
- Object-XML mapping using JAXB including advanced techniques
- How to use JAX-WS Metro/CXF for SOAP over HTTP and other transports
-
- How to perform one-way and long running calls efficiently
- Develop Spring MVC and/or JAX-RS RESTful web services
- Produce and consume JSON
Required skills
Java web programming (servlets) and XML. Spring Framework and some prior experience with web services is highly recommended
Teaching methods
Professional explanation with practical samples and examples. Exam simulation.
Teaching materials
Slide printouts
Course syllabus
XML, XSD, JSON
- XML Namespaces
- XML Schema (XSD), validation
- XSD inference from existing XML files
- XML Fast Infoset
- MTOM
- JSON
SAX, JAXB
- Working with XML in Java
- Lowest level - SAX
- ContentHandler
- Validation using XSD schema
- XML Catalog
- Object XML Mapping (OXM)
- JAXB 2.x
- Tools, xjc, schemagen
- XML vs. Object mismatch, translators
- Customizations file
- Validation
- Partial unmarshalling
- XmlJavaTypeAdapter
- Binary data encoding (for MTOM)
SOAP, WSDL, REST
- SOAP
- SOAP over HTTP
- WSDL (1.1)
- One-Way, Request-Response, Fault
- Document/Literal/Wrapped, RPC/Encoded
- WS-Addressing
- WSDL 2.0 (optional)
JAX-WS - Client side
- WSDL first approach - wsimport
- High level - communication proxy behind Java interface
- Low level - Dispatch
- One way invocation
- In/Out parameters and Holder<T>
- Asynchronous invocation - Future
- Asynchronous invocation - AsyncHandler and Executor
- @WebServiceRef and Java EE dependency injection
JAX-WS - Server side
- High level - exposing Java classes
- Low level - serving request using Provider
- Generating WSDL - wsgen
- Faults and Exceptions
JAX-WS and Spring Framework
- ContextLoader or SpringBeanAutowiringSupport
- CXF and Spring bean definition
- Metro and Spring bean definition
Advanced JAX-WS
- Long lasting calls (minutes, hours) - Comet
- JAX-WS Handlers
- JAX-WS and WS-Addressing
- Binary attachments and MTOM
- BASIC authentication
- HTTPS transport encryption
- WS-Security
- WS-Policy, WS-SecurityPolicy
- UsernameToken
- Authentication using mutual certificates
- Message level encryption
- WS-ReliableMessaging
Spring MVC and REST Web Services
- REST, RESTful Web Services
- GET, POST, PUT, DELETE
- Spring MVC architecture, DispatcherServlet
- @RequestMapping, URLs, HTTP headers
- @PathVariable
- @RequestBody, @ResponseBody, HttpMessageConverter
- JSON and JacksonJsonMappingView
JAX-RS and REST Web Services
- Jersey JAX-RS implementation
- @GET, @POST, @PUT, @DELETE, URLs, @Path, @Consumes, @Produces, @PathParam
- Application object, configuration
- Java EE dependency injection
Other Remoting Technologies (optional)
- Java Serialization
- RMI
- Spring HttpInvoker
- Spring JmsInvoker