An Introduction to Web Services
- Explaining the need for web services
- Defining web services
- Explaining the characteristics of a web service
- Explaining the use of both XML and JSON in web services
- Identifying the two major approaches to developing web services
- Explaining the advantages of developing web services within a Java EE container
XML
- Describing the Benefits of XML
- Creating an XML Declaration
- Assembling the Components of an XML Document
- Declaring and Apply XML Namespaces
- Validating XML Documents using XML Schemas
- Creating XML Schemas
JAXB
- Listing the Different Java XML APIs
- Explaining the Benefits of JAXB
- Unmarshalling XML Data with JAXB
- Marshalling XML Data with JAXB
- Compiling XML Schema to Java
- Generating XML Schema from Java Classes
- Applying JAXB Binding Annotations
- Creating External Binding Configuration Files
SOAP Web Services
- SOAP message structure
- Using WSDL files to define web services
- WS-I Basic Profile and WS-Policy
Creating JAX-WS Clients
- Using tools to generate JAX-WS client artifacts
- Calling SOAP web services using JAX-WS in a Java SE environment
- Calling SOAP web services using JAX-WS in a Java EE environment
- Using JAXB Binding customization with a SOAP web service
- Creating a JAX-WS Dispatch client
- Creating a client that consumes a WS-Policy enhanced services (WS-MakeConnection)
RESTful Web Services
- Describing the RESTful architecture and how it can be applied to web services
- Designing a RESTful web service and identify resources
- Navigating a RESTful web service using hypermedia
- Selecting the correct HTTPethod to use when duplicate requests must be avoided
- Identifying Web Service result status by HTTP response code
- Version RESTful web services
Creating RESTful Clients in Java
- Using Java SE APIs to make HTTP requests
- Using the Jersey Client APIs to make HTTP requests
- Processing XML and JSON in a RESTful web service client
Bottom-Up JAX-WS Web Services
- Describing the benefits of Code First Design
- Creating JAX-WS POJO Endpoints
- Creating JAX-WS EJB Endpoints
Top-Down JAX-WS Web Services
- Describing the benefits of WSDL First Design
- Generating Service Endpoint Interfaces (SEIs) from WSDLs
- Implementing Service Endpoint Interfaces
- Customizing SEI Generation
JAX-RS RESTful Web Services
- Download, Install, and Configure Jersey
- Creating Application Subclasses
- Creating Resource Classes
- Creating Resource Methods, Sub-Resource Methods, and Sub-Resource Locator Methods
- Producing and Consume XML and JSON content with JAX-RS
Web Service Error Handling
- Describing how SOAP web services convey errors
- Describing how REST web services convey errors
- Returning SOAP faults
- Returning HTTP error status codes
- Mapping thrown Exceptions to HTTP status codes
- Handling errors with SOAP clients
- Handling errors with Jersey clients
Security Concepts
- Explaining Authentication, Authorization, and Confidentiality
- Applying Basic Java EE Security by using deployment descriptors (web.xml)
- Creating users and groups and map them to application roles
- Detailing possible web service attack vectors
WS-Security
- Describing the purpose of WS-Policy, WS-SecurityPolicy, WS-Security
- Configuring WebLogic Server for WS-Security
- Applying WS-Policy to WebLogic JAX-WS Web Services
- Signing and Encrypt SOAP Messages using WS-Security
Web Service Security with Jersey
- Applying JSR-250 Security Annotations such as @RolesAllowed
- Enabling an assortment of filters including the RolesAllowedResourceFilterFactory
- Obtaining a SecurityContext and perform programmatic security
- Authenticating using the Jersey Client API
OAuth 1.1a with Jersey
- Describing the purpose of OAuth
- Describing the request lifecycle when using OAuth
- Creating OAuth enabled services using Jersey
- Creating OAuth enabled clients using Jersey