Realdolmen Education

Details

Building Web Services with JEE 6

This course is currently not scheduled on the open calendar, but can be organized on request.

Request Course

Duration

3 day(s)

Audience

Developers and architects who need to build SOAP or REST webservices.

Prerequisites

Having a good understanding of the core Java SE Libraries. Some previous experience with the Java EE technologies can be useful for a better understanding, but is not required.

Objectives

At the end of this course, participants will be comfortable with all the major webservice concepts, and know how to build SOAP and RESTful webservices using the JEE6 platform.

Methods

Classroom training with hands-on exercises.

Description

Ever wanted to create your own SOAP or REST webservice in Java? This is not a trivial task!First you need to know the concepts of webservices: SOAP, WSDL, XSD, REST etc... . Next you need to know howto actually implement a webservice. Fortunately the latest edition of the Java Enterprise Edition platform(JEE6) has made a huge leap forward in facilitating the creation of webservices with Java. With the newversion of the JAX-WS standard, making SOAP based webservices is a breeze. Similarly the new JAX-RS standardmakes creating a RESTful webservice a walk in the park. Finally making webservices is as easy as it shouldbe!

RealDolmen offers a unique course that combines all aspects of building webservices together.Participants are first given a firm understanding of the underlying concepts of webservices. With this as afoundation to build on, we continue to the two major specifications to create webservices in JEE6: JAX-WSfor SOAP and JAX-RS for RESTful webservices. These two APIs cover the use of webservices in today'smarket. Do not think this course only scratches the surface of creating webservices! We will also coverhandling binary data and how to create a webservice client for both SOAP and REST. Finally we take a look ata couple of different ways to secure your webservices. As you can see, this is a complete course that coversall major aspects regarding webservices in modern applications. After completing this course, participantswill be quite capable of building any sort of webservice they need. This course is intended for both peoplewho are new to building webservices, and people who want to solidify their existing knowledge.

Contents

  • Building Web Services With JEE6
  • Introduction
    • Course objective
    • Agenda Day One
    • Agenda Day Two
    • Agenda Day Three
    • What is a Web Service?
    • Web Service types
    • Web Services Technologies
    • From a Java perspective?
    • History lesson: First Generation
    • History lesson: Second Generation
    • History lesson: RESTfulness
    • Standards organisations
    • World Wide Web Consortium (W3C)
    • OASIS
    • Web Services Interoperability Organisation (WS-I)
  • Web Service Technologies
    • SOAP
      • The SOAP protocol
      • SOAP Conventions
      • Anatomy of SOAP
      • SOAP element
      • SOAP
        element
      • SOAP element
      • SOAP Encoding
      • Message contracts
      • XSD Schema
      • XSD Schema example
      • Message Exchange Model
      • SOAP element
      • SOAP History & Versions
      • Exercise: SOAP
    • WSDL
      • What is WSDL?
      • WSDL Basic structure
      • The web services triangle
      • undamentals of invoking services
      • Synchronous invocation & RPC
      • Service invocation and the WSDL
      • Web Service Semantics
      • The WSDL file
      • WSDL element
      • WSDL element
      • Inline types
      • Imported types
      • WSDL element
      • WSDL element
      • WSDL element
      • Binding style / use
      • WSDL element
      • WSDL Overview
      • WSDL Versions
      • Exercise: WSDL
    • UDDI
      • Defining UDDI
      • UDDI Taxonomy
      • UDDI Services
      • Public and private registries
      • UDDI Terminology
      • UDDI Registry layout
      • UDDI Data structure
      • UDDI Operations
    • Advanced Web Services Infrastructure
      • Message Exchange Patterns (MEPs)
      • Request-Response
      • Solicit-Response
      • One-Way
      • Notification
      • Recommended MEPS
      • WS-*: Second Generation Web Services
      • WS-* Overview
      • WS-* and SOA
      • WS-I Basic Profile
  • JAX-WS
    • Introduction
      • What is JAX-WS?
      • Rationale of JAX-WS
      • JAX-WS Versions
    • Getting started
      • Quickstart to writing a SOAP Web Service
      • Step 1: Create a new project
      • Step 2: Setup a new persistence context
      • Step 3: Add a Book entity
      • Step 4: Add a BookService
      • Step 5: Add some read operations
      • Step 6: Add some write operations
      • Step 7: Startup the server
      • Step 8: Examine the WSDL and XSD files
      • Step 9: Test the Web Service
      • Step 10: Import the Web Service into SoapUI
      • Step 11: Invoke the Web Service
      • Exercise: JAX-WS Quickstart
    • Basic features
      • Service Endpoints
      • Stateless Session Bean Endpoints
      • Servlet Endpoints
      • Stand-alone Endpoint
      • Basic Annotations
      • @WebService
      • @WebService attributes
      • @WebService attributes example
      • @WebMethod
      • @WebMethod example
      • Mapping types to XML
      • XML Marshalling using JAXB
      • XML Marshalling example
      • @WebParam
      • @WebParam example request
      • Input / output parameters
      • Header parameters
      • @WebResult
      • SOAP Binding styles
      • Binding Style differences
      • @SOAPBinding
      • Exception to Fault mapping
      • Unchecked Exceptions
      • Checked Exceptions
      • Customize checked exceptions
      • @WebFault
      • Checked Exception example SOAP Fault
      • SOAPFaultException
      • WebServiceContext
      • Exercise: JAX-WS Basic features
    • Contract-first
      • Service Development Models
      • Code-first approach
      • Contract-first approach rationale
      • Contract-first in JAX-WS: wsimport
      • Building a Contract-first Web Service
      • Exercise: JAX-WS Contract-first
    • Web Service Client
      • Using wsimport to generate a Web Service client
      • Invoking the Web Service
      • @WebServiceRef
      • Web Service client example
      • Exercise: JAX-WS Client
    • Providers & Handlers
      • Low-level APIs
      • What are Providers?
      • Provider Service Mode
      • Provider example
      • What are Handlers?
      • Types of Handlers
      • LogicalHandler
      • SOAPHandler
      • MessageContext
      • Handler chain
      • Handler example
      • Exercise: JAX-WS Handlers
    • Binary data
      • Web services and binary data
      • Base64
      • MTOM
      • MTOM in JAX-WS
      • MTOM Example
      • Exercise: JAX-WS Binary data
    • Asynchronous Web Services
      • Asynchronous services
      • @Oneway
      • Other forms of Asynchronous services
      • Exercise: JAX-WS: Asynchronous Services
  • JAX-RS
    • Understanding RESTful webservices
      • What is REST?
      • Principles of REST
      • Addressable Resources
      • Uniform, Constrained Interface
      • HTTP Methods
      • HTTP Status Codes
      • Advantages of a Uniform, Constrained Interface
      • Representation-oriented
      • Communicate statelessly
      • Hypermedia As The Engine Of Application State
    • Getting started
      • What is JAX-RS?
      • Quickstart to writing a REST Service
      • Step 1: Create a new project
      • Step 2: Setup a new persistence context
      • Step 3: Add a Book entity
      • Step 4: Add a BookService
      • Step 5: Specify a root resource path
      • Step 6: Add some read operations
      • Step 7: Add some write operations
      • Step 8: Startup the server
      • Step 9: Download a test tool
      • Step 10: Invoke createBook
      • Step 11: Invoke findBookById and findAllBooks
      • Step 12: Invoke updateBook and deleteBook
      • Exercise: JAX-RS Quickstart
    • Binding URIs
      • Setting up a root resource path
      • The service implementation
      • The @Path annotation
      • HTTP method annotations
      • Injections
      • Template parameters
      • Template parameter regular expressions
      • Ambiguous template parameters
      • Path precedence rules
      • URI Path segments
      • Matrix parameters
      • Query parameters
      • Form, Header and Cookie parameters
      • Context injections
      • Example: UriInfo
      • Simple type mapping
      • Exercise: JAX-RS Binding URIs
    • Building responses
      • Response generation
      • Returning void or null
      • Returning a value
      • Default error handling
      • Customizing error handling
      • Customizing the response
      • Building resource URIs
      • Using the generated URI
      • Exercise: JAX-RS Building responses
    • Representations
      • Representations
      • MIME types
      • Content negotiation
      • @Produces
      • @Consumes
      • Default type mapping for non-simple types
      • Type mapping example
      • XML Marshalling using JAXB
      • XML Marshalling example
      • JSON
      • JSON Marshalling
      • JSON Marshalling example
      • Exercise: JAX-RSĀ  Representations
    • Providers
      • Review of type mapping
      • Providers
      • Creating a provider
      • MessageBodyWriter
      • MessageBodyWriter example
      • MessageBodyReader
      • MessageBodyReader example
      • ExceptionMapper
      • ExceptionMapper example
      • Exercise: JAX-RS Providers
    • REST Client
      • REST Client
      • No standardized client API
      • Jersey client dependencies
      • Classes involved
      • Creating a Client
      • Creating a WebResource
      • Building the request
      • Invoke the service call
      • Obtaining the response
      • Adding providers to the Client
      • Jersey client example: Domain
      • Jersey client example: Server
      • Jersey client example: Client class
      • Exercise: JAX-RS Client
    • REST Security
      • Transport versus Message layer security
      • SSL versus encryption
      • REST Security
    • Comparing REST to SOAP
      • Which one to choose?
  • Conclusion
    • Conclusion
    • References