Next Level Web Services & REST for Java / JEE

Java Web Services

TT7380

Introductory and Beyond

4 Days

Course Overview

Geared for experienced developers, Mastering Java Web Services is a five day, lab-intensive web services training course that covers the entire spectrum of technologies that enable Web Services in Java and JEE. This course focuses on what separates an ad hoc set of web services (NOT SOA) from a managed, vibrant, reusable catalog of enterprise services (definitely SOA). This course provides an overview of the entire spectrum from the promise of cloud computing to the grit of XML content. Students will gain practical, hands-on experience with implementations of the Java XML and Web Service APIs including JAXP, JAXB, JAX-WS 2.0, WSEE, and XWSS. In terms of Java, the focus is on using the JAX-WS 2.0 and JAXB APIs and implementations as the basic for generating and deploying web services and service clients.

Course Objectives

Mastering Java Web Services focuses on providing an understanding of the fundamental technologies used in web services. This understanding is critical to being able to diagnose, troubleshoot, tune, and perform other lifecycle activities.   Working in a dynamic, interactive discussion and hands-on programming environment, developers will be able to:

  • Understand and apply the basic concepts of SOA to the identification and design of web services
  • Understand and intelligently discuss Web Services and the core technologies involved
  • Understand and apply the basic concepts of SOA to the identification and design of web services
  • Appreciate the concept of layered services including orchestration
  • Understand and intelligently discuss Web Services and the core technologies involved
  • Design, develop, and deploy real-world JEE Web Services
  • Expose existing Java components as XML Web Services
  • Write Java components that access remote Web Services hosted by a third party
  • Read and understand a WSDL document
  • Parse, process, and respond to a SOAP message
  • Understand the concepts behind REST and implement a REST-based web service
  • Implement handlers to inject cross-cutting solutions for security, logging, auditing, and other needs
  • Work with WS-Security to protect content, resources, and other assets

  Students will explore at the current state of the art of Web services, what works and what doesn’t work, and also at newer standards, and how they fit into the Web services picture. Web services are still evolving rapidly, and this course will give you a thorough understanding of the current Web services architecture, and the technologies that support Web services including:

  • SOAP – Simple Object Access Protocol - A remote invocation (RPC) and messaging mechanism.WSDL – Web Services Description Language – An XML language that describes the interface and semantics of a Web service.
  • REST- Representational State Transfer - A style of implementing web services that is gaining increasing acceptance and use
  • WS-I –Web Services Interoperability Profiles
  • WS-Security/XWSS – Web Services Security
  • JAX-WS 2.0 – Accessing Web services using Java
  • JAXB – Used for binding XML to Java, increasing interoperabiltiy between the two

 

Course Prerequisites

This is an intermediate level training course, designed for experienced Java developers and architects who need to identify, design, and implement web services. We will explore and apply the terminology, the specification, the processes and technologies specific to web services.   Students should have 1-2 years of working knowledge with Servlets and JSPs, and should be familiar with XML, Namespaces, and XML Schema.

Course Agenda

Session: Exploring Web Services     

 

Lesson: Web Services Overview     

  • Web Services Architecturally
  • Spec and Standard Evolution
  • Web Services Interoperability Organization
  • .NET Platform & .NET Web Services
  • Java and Web Services

 

Lesson: Web Services, Java, and JEE

  • XML Signature
  • XML Encryption
  • JAXP, JAXB, and JAX-WS
  • JEE and Web Services
  • Web Services Stacks at a Glance

 

Lesson: Web Services Quickstart

  • “Typical” Web Services Stack
  • How Stack is Used on the Service-Side
  • How Stack is Used on the Client-Side
  • Debugging Web Services

 

Session: Foundation of Web Services

 

Lesson: XML Review: Namespaces, & Schema

  • XML Separates Structure, Content and Format
  • XML Namespaces
  • Namespaces Best Practices
  • W3C XML Schemas

Lesson: XML in Java - JAXP and JAXB

  • JAXP: Java API for XML Processing
  • Security Concerns Relative to Parsing
  • JAXB: Binding XML to Java

 

Session: Binding – SOAP/REST         

 

Session: Binding – SOAP/REST

 

Lesson: SOAP Overview

  • Anatomy of a SOAP Message
  • SOAP and HTTP
  • SOAP Messaging
  • Remote Procedure Calls
  • SOAP With Attachments
  • The SOAP Envelope
  • SOAP Data Model

 

Lesson: REST Overview

  • REpresentational State Transfer
  • REST Characteristics
  • REST Elements
  • REST Architectural Principles
  • REST and HTTP
  • REST/HTTP: Representation-Oriented
  • REST Design Principles

Session: Description and Discovery

 

Lesson: WSDL Overview   

  • Describing Web Services
  • WSDL in Practice
  • WSDL/SOAP Namespaces
  • WSDL Anatomy

 

Lesson: Discovery

  • Issues With Broadly Scoped Discovery
  • UDDI Registries
  • Tools That Support Discovery

 

Session: Web Services in Java – JAX-WS

 

Lesson: JAX-WS Overview

  • JAX-WS Architecture
  • JAX-WS Features
  • Web Service Annotations
  • JAX-WS Programming Model
  • JAX-WS Handlers

 

Lesson: Working with JAX-WS         

  • JAX-WS Development Process
  • Bottom-up Building of a Web Service
  • Top-Down Building of a Web Service
  • Types of JAX-WS Clients

 

Lesson: Handlers

  • JAX-WS and Handlers
  • Handler Life Cycle
  • Configuring Handlers
  • Understanding SAAJ

 

Lesson: Working With Attachments              

  • SOAP With Attachments
  • Sending Binary Data
  • Optimized Serialization
  • WS-I Attachment Profile
  • swaRef
  • Enabling MTOM in JAX-WS
  • Attached and In-line
  • JAX-WS and swaRef

 

Session: Implementing REST with JAX-RS

 

Lesson: Designing RESTful Services

  • Effectively Designing RESTful Services
  • Best Practices for Endpoint Definition
  • Using Query Parameters
  • Working with HTTP GET and DELETE
  • Working with HTTP PUT
  • Working with HTTP POST
  • Best Practices for HTTP Methods
  • Handling Additional Operations

Lesson: Overview of JAX-RS

  • JAX-RS Implementations
  • JAX-RS Service Class
  • JAX-RS Service Lifecycle Options
  • Consuming RESTful Services

 

Lesson: @Path: URI Matching

  • @Path Annotation
  • @Path Expressions
  • @Path and Regular Expressions
  • HTTP Method Annotations

 

Lesson: Injection Using JAX-RS

  • Parameters
  • Working with @PathParam
  • Header and Cookie Values Can be Injected
  • Working Programmatically with URI

 

Lesson: Handling Exceptions

  • REST/HTTP 1.1 Error Response Codes
  • Overview of Exception Handling in JAX-RS
  • JAX-RS's WebApplicationException

 

Lesson: Handling Content

  • JAX-RS Built-In Content Handlers
  • Content Marshaling
  • Using JAXB With JAX-RS
  • Working With JSON
  • Content Negotiation (Conneg)

Session: Advanced Web Services Topics

 

Lesson: Web Services for JEE (WSEE)

  • WSEE Server Programming Model
  • WSDD
  • WSEE Client Programming Model

 

Lesson: Transactions in Web Services: WS-TX

  • SOA's Challenge of Handling Transactions
  • WS-Transaction (WS-TX)
  • WS-Coordination
  • WS-AtomicTransaction
  • WS-BusinessActivity

 

Session: Security - WS-Security and Defenses

 

Lesson: XML Signature and Encryption

  • XML Challenges
  • XML Signature
  • XML Signature Usage
  • XML Encryption
  • XML Encryption Usage

 

Lesson: WS-Security

  • Transport-Level Security
  • Message-Level Security
  • Web Services Security Roadmap
  • WS-Security Enables Interoperability
  • Networking Devices Usage

 

Lesson: Securing Untrusted Input  

  • Input Data Attacks
  • Protecting a Web Service
  • Tenacious D
  • Responding to Error State

 

 

Course Materials

Our robust course materials include much more than a simple slideshow presentation handout.  Student materials include a comprehensive hard-copy course manual, complete with detailed course notes, code samples, diagrams and current reference materials, all directly related to the course at hand, indexed for ease of use. Step-by-step lab instructions, software tutorials and project descriptions are clearly illustrated and commented for maximum learning. 

Raise the bar for advancing technology skills

Attend a Class!

Live scheduled classes are listed below or browse our full course catalog anytime

Special Offers

We regulary offer discounts for individuals, groups and corporate teams. Contact us

Custom Team Training

Check out custom training solutions planned around your unique needs and skills.

EveryCourse Extras

Exclusive materials, ongoing support and a free live course refresh with every class.

Mix, Match & Master!
2FOR1: Two Courses, One Price!

Enroll in *any* two public courses (for 2023 *OR* 2024 dates!) by December 31, for one price!  Learn something new, or share the promo!

Click for Details & Additional Offers

Learn. Explore. Advance!

Extend your training investment! Recorded sessions, free re-sits and after course support included with Every Course
Trivera MiniCamps
Gain the skills you need with less time in the classroom with our short course, live-online hands-on events
Trivera QuickSkills: Free Courses and Webinars
Training on us! Keep your skills current with free live events, courses & webinars
Trivera AfterCourse: Coaching and Support
Expert level after-training support to help organizations put new training skills into practice on the job

The voices of our customers speak volumes

Special Offers
Limited Offer for most courses.

SAVE 50%

Learn More