877-277-2477
info@capstonecourseware.com
563. Developing RESTful Services in Java
Version 1.1

Book cover

This course shows experienced Java programmers how to build RESTful web services using the Java API for RESTful Web Services, or JAX-RS. We begin with an overview of web services development in the Java EE platform, including SOAP, WSDL, REST; JAX-WS, JAXB, and JAX-RS. Then students learn to work with JAXB to bind Java object models to XML Schema. The bulk of the course is devoted to study of JAX-RS: students work with the Jersey implementation of JAX-RS to create RESTful services from simple single-value interactions to more sophisticated services that manage CRUD (create/retrieve/update/delete) operations on more complex data types, using JAXB to marshal and unmarshal data over the wire.

Prerequisites

  • Strong Java programming skills are essential -- Course 103 is excellent preparation.
  • Students must be able to read XML documents and to write well-formed XML by hand -- consider Course 501. Knowledge of XML Schema will be helpful, too, but is not a strict prerequisite -- consider Course 517.
  • Experience with other Java EE standards, especially servlets and JSP, will be very helpful in class, but is not strictly required.

Learning Objectives

  • Understand the advantages of the REST architecture for web services.
  • Use JAX-RS to develop simple RESTful services.
  • Control dispatching to service methods based on URL patterns and HTTP methods.
  • Bind request values to method parameters when expressed as HTTP query parameters, form values, headers, cookies, and more.
  • Manage XML content using XML Schema and JAXB.
  • Incorporate XML entities into service input and output.
  • Take advantage of lifecycle and context services available to JAX-RS services as Java EE components.

Timeline: 3 days.

Server Support: GlassFish

  • This version of the course works with the GlassFish server. Our Java EE courses are available in variants that support various server products, including Tomcat, GlassFish, JBoss, and WebLogic. For more details, and to find a desired server-specific version of a course, see our server-support matrix.

IDE Support: Eclipse Helios

  • In addition to the primary lab files, an optional overlay is available that adds support for Eclipse Helios. Students can code, build, deploy, and test all exercises from within the IDE, and take advantage of built-in editors, integrated debugging, etc. See also our orientation to Using Capstone's Eclipse Overlays.

Chapter 1. Overview of Web Services

  • Why Web Services?
  • Service-Oriented Architecture
  • HTTP and XML
  • SOAP
  • WSDL
  • The SOAP Vision
  • The REST Vision
  • UDDI
  • The WS-I Basic Profile
  • Security

Chapter 2. Web Services for Java EE

  • Hosting Web Services: Scenarios
  • Web Services for Java EE
  • JAX-WS and JAXB
  • Web-Services Metadata
  • WSDL-to-Java and Java-to-WSDL Paths
  • Provider and Dispatch APIs
  • SAAJ and JAXP
  • JAX-RS for RESTful Services
  • JAXR

Chapter 3. The Java API for XML Binding

  • The Need for Data Binding
  • XML Schema
  • Two Paths
  • JAXB Compilation
  • Mapping Schema Types to Java
  • Java-to-XML Mapping Using Annotations
  • Marshaling and Unmarshaling
  • Working with JAXB Object Models

Chapter 4. The Java API for RESTful Services

  • Applications
  • Resources
  • Sub-Resources
  • Providers
  • Scanning and @ApplicationPath

Chapter 5. Dispatching Requests to Methods

  • The Application Path
  • The @Path Annotation
  • The HTTP Method Annotations
  • Sub-Resource Locators
  • Annotation Inheritance and overriding

Chapter 6. Parameter and Return Types

  • Simple Parameter Types
  • @Consumes and @Produces Annotations
  • @XXXParam Annotations
  • The @DefaultValue Annotation
  • Return Types
  • Binary Content
  • Delivering a File

Chapter 7. Entities and Complex Content

  • Entity Providers
  • Built-In Entity Providers
  • Working with XML
  • Driving XML Representations from Schema

Chapter 8. Context and Lifecycle

  • Reading Web Resources
  • Finding Java EE Components
  • Finding Databases
  • Security Contexts

Appendix A. Course Tools and Utilities

Appendix B. Handy Guide to Web-Services Acronyms

System Requirements

Hardware Requirements (Minimum) Core 2 Duo, 1.5 GHz, 2 gig RAM, 1 gig disk space.
Hardware Requirements (Recommended) Core 2 Duo, 2.5 GHz GHz, 4 gig RAM, 1 gig disk space.
Operating System Tested on Windows 7 and Windows XP Professional. Course software should be viable on all systems which support a Java 6 Developer's Kit.
Network and Security Limited privileges required -- please see our standard security requirements.
Software Requirements All free downloadable tools.