RESTful Web Services with JAX-RS

84 Ratings

Course Number: JAV-190

Duration: 3 days (19.5 hours)

Format: Live, hands-on

JAX-RS Training Overview

Accelebrate's Restful Web Services with JAX-RS training teaches attendees REST principles and how to build RESTful services using the JAX-RS 2.0 API. 

Location and Pricing

Accelebrate offers instructor-led enterprise training for groups of 3 or more online or at your site. Most Accelebrate classes can be flexibly scheduled for your group, including delivery in half-day segments across a week or set of weeks. To receive a customized proposal and price quote for private corporate training on-site or online, please contact us.

In addition, some courses are available as live, online classes for individuals. See a schedule of online courses.

Objectives

  • Understand the purpose and role of web services in general, and how they are architected to expose business systems and processes over the web
  • Understand the concepts and principles of REST and HTTP applications
  • Expanded knowledge of HTTP, including its full set of methods and their intended uses, important headers, response codes, and content types
  • Understand REST APIs, including resource identifiers and the URI namespace, resources and subresources, and WADL
  • Understand configuration, deployment, and the runtime environment, including per-request and singleton objects, options for dependency injection, etc.
  • Understand how HTTP requests get dispatched to service methods
  • Understand content negotiation and the importance of Accept and Content-Type headers, and how they impact method dispatching
  • Bind request inputs to method parameters, including path parameters, query parameters, and headers
  • Exchange business data by communicating in HTTP entities in both XML and JSON format
  • Handle errors using Java exceptions and appropriate HTTP response codes
  • Integrate JAX-RS services with other Java EE technologies like servlets, EJB, and CDI, and how JAX-RS fits into the larger Java EE landscape
  • Write browser clients using Ajax-JavaScript
  • Write Java clients using the JAX-RS 2.0 Client API, including standalone clients and server-side components invoking remote services
  • Secure RESTful resources

Prerequisites

Attendees must be experienced in Java and preferably familiar with XML, Java web applications, and other Java EE standards. Familiarity with Ajax, JavaScript, and JSON is also beneficial, but not required.

Outline

Expand All | Collapse All

Introduction
Web Services Overview
  • Definition
    • Legacy Systems
    • Benefits of Web Services
    • Architecture
  • Standards and Portability
    • XML and Related Standards
    • JSON
    • HTTP
  • SOAP-Based Services
    • Overview
    • SOAP Messages, Requests, and Responses
    • WSDL
    • Java APIs and Programming Models
Introduction to REST
  • Overview and Principles
    • REST Characteristics
    • Resources and Operations
    • REST Principles
  • Requests and Responses
    • REST APIs
    • URI Templates
    • GET, POST, PUT, DELETE
    • Safe and Idempotent Methods
  • Comparison of REST and SOAP
Introduction to JAX-RS
  • APIs and Implementations
    • JAX-RS Overview, Annotations
    • JAX-RS Implementations
  • Runtime Environment
    • Application Server, Servlet-Only Container
    • Architectural and Implementation Perspectives
    • Configuring the Application
  • Applications, Resources, and Providers
    • JAX-RS Applications
    • Resource Classes and @Path
    • Provider Classes and @Provider
    • Default Lifecycles
    • The Application Class and rest-path
  • Ajax-JavaScript Clients
    • Overview
    • Classic vs. Ajax Interactions
    • Working with Ajax-JavaScript
Resources and Requests
  • Resources and Subresources
    • Root Resource Classes, Resource Methods, Subresource Methods
    • @GET, @POST, @PUT, @DELETE
    • Subresource Locators
    • Naming Conventions and Rules
    • Dispatching Requests to Methods
  • Binding Request Data
    • Request Data Injection and Conversion
    • Default Values
    • Fields vs. Method Parameters
  • Context-Based Injection
    • Injection via @Context
    • Context-Injectable Types
    • Context Injection from the Web Container
    • Fields vs. Method Parameters
HTTP Entities
  • Complex Content and Entities
    • Working with Complex Content
    • @Consumes and @Produces
    • Content Negotiation
    • Standard Entity Providers
  • Working with JSON
    • Returning Data as JSON
    • Working with JSON in JavaScript
    • Processing JSON Responses
  • Working with XML
    • JAXB and Mapping to XML
    • Returning Data as XML
    • Working with XML on the Client
    • Customizing Content, Custom Media Types
    • Working with Collections
  • XML vs. JSON
Responses
  • Response Class
    • Return Types and HTTP Response Codes
    • Appropriate Responses for HTTP Methods
    • Choosing the Right Response
  • Error Handling
    • Exception Mappers
    • WebApplicationException
    • Response vs. Thrown Exception
    • Error Responses
  • Subresource Locators
    • Motivation and Uses
    • Locating the Locator
    • Initializing the Subresource
  • Binary Content
    • File, InputStream, StreamingOutput
    • Using StreamingOutput
Java Client API
  • Java Client - Options and Ingredients
  • Building and Sending the Request
  • Consuming the Response
  • Options for the Response Data
  • Asynchronous Requests
Integration with Java EE
  • Integration with EJB
  • CDI - Contexts and Dependency Injection
    • Activation, Scopes, and JAX-RS Lifecycles
    • Injection in CDI-Enabled JAX-RS Applications
    • Enhanced Java EE Lifecycle
Security
  • Java EE Security Overview
    • Security Requirements in JAX-RS
    • Declarative, Role-Based Security
    • Security Constraints
    • Annotation-Based Security
  • Authentication
    • Configuration
    • Authentication Models: Basic, Digest, Client-Cert
  • Programmatic Security
    • SecurityContext
    • Client Security
  • HTTPS
Conclusion

Training Materials:

All JAX-RS training attendees receive comprehensive courseware.

Software Requirements:

  • JDK 8 or later
  • Eclipse IDE (other IDEs can be accommodated upon request)
  • Wildfly or JBoss EAP
  • Modern web browser
  • Related lab files that Accelebrate provides


Learn faster

Our live, instructor-led lectures are far more effective than pre-recorded classes

Satisfaction guarantee

If your team is not 100% satisfied with your training, we do what's necessary to make it right

Learn online from anywhere

Whether you are at home or in the office, we make learning interactive and engaging

Multiple Payment Options

We accept check, ACH/EFT, major credit cards, and most purchase orders



Recent Training Locations

Alabama

Birmingham

Huntsville

Montgomery

Alaska

Anchorage

Arizona

Phoenix

Tucson

Arkansas

Fayetteville

Little Rock

California

Los Angeles

Oakland

Orange County

Sacramento

San Diego

San Francisco

San Jose

Colorado

Boulder

Colorado Springs

Denver

Connecticut

Hartford

DC

Washington

Florida

Fort Lauderdale

Jacksonville

Miami

Orlando

Tampa

Georgia

Atlanta

Augusta

Savannah

Hawaii

Honolulu

Idaho

Boise

Illinois

Chicago

Indiana

Indianapolis

Iowa

Cedar Rapids

Des Moines

Kansas

Wichita

Kentucky

Lexington

Louisville

Louisiana

New Orleans

Maine

Portland

Maryland

Annapolis

Baltimore

Frederick

Hagerstown

Massachusetts

Boston

Cambridge

Springfield

Michigan

Ann Arbor

Detroit

Grand Rapids

Minnesota

Minneapolis

Saint Paul

Mississippi

Jackson

Missouri

Kansas City

St. Louis

Nebraska

Lincoln

Omaha

Nevada

Las Vegas

Reno

New Jersey

Princeton

New Mexico

Albuquerque

New York

Albany

Buffalo

New York City

White Plains

North Carolina

Charlotte

Durham

Raleigh

Ohio

Akron

Canton

Cincinnati

Cleveland

Columbus

Dayton

Oklahoma

Oklahoma City

Tulsa

Oregon

Portland

Pennsylvania

Philadelphia

Pittsburgh

Rhode Island

Providence

South Carolina

Charleston

Columbia

Greenville

Tennessee

Knoxville

Memphis

Nashville

Texas

Austin

Dallas

El Paso

Houston

San Antonio

Utah

Salt Lake City

Virginia

Alexandria

Arlington

Norfolk

Richmond

Washington

Seattle

Tacoma

West Virginia

Charleston

Wisconsin

Madison

Milwaukee

Alberta

Calgary

Edmonton

British Columbia

Vancouver

Manitoba

Winnipeg

Nova Scotia

Halifax

Ontario

Ottawa

Toronto

Quebec

Montreal

Puerto Rico

San Juan