Course 418:
Implementing a Service-Oriented Architecture
with XML Web Services in Java

(5 days)


Course Description

This in-depth, advanced workshop will explain the need for a service-oriented architecture (SOA), best practices for integrating across enterprise systems using a SOA, and provide concrete details on implementing and orchestrating Web services with the Java API for XML Web Services (JAX-WS) and the Java API for XML RESTful Services (JAX-RS).

This course also provides a comprehensive introduction to XML and how to parse, create, transform, and bind to XML from Java programs.

Learning Objectives

Students will leave this course armed with the skills to:

  • Design a Service-Oriented Architecture with XML Web Services
  • Describe the structure of an XML document using schema
  • Interact with XML documents from Java programs using SAX, DOM, JAXB, and TRaX
  • Build XML-level Web services and clients using the Provider and Dispatch APIs
  • Build RESTful Web services using JAX-RS
  • Build clients to RESTful services using the Jersey Client API
  • Monitor SOAP messages between Web services and clients
  • Write and deploy WSDL for WSDL-first Web services
  • Create WSDL-first and code-first Web services
  • Create synchronous and asynchronous Web service clients
  • Interpose custom SOAP handlers on client-side and server-side
  • Orchestrate Web services
  • Enable message optimization, reliability, and security

Who Should Attend

This is an intermediate-level Java programming course, designed for architects and developers who wish to implement integration architectures using XML Web services in Java. The student should be an experienced JEE/Java programmer, with practical development experience.


Attendees should have proficiency in Java equivalent to the level of ROI’s Course 430: Essential Java.

Course Outline

Chapter 1: Introduction to SOA and Web Services

  • What Is SOA?
  • Why SOA?
  • SOA Implementation Options
  • SOA in the Real World
  • Quick Introduction to Eclipse, Ant, and Tomcat
  • Exercise 1: Exploring the Case Study

Chapter 2: Designing a SOA with XML Web Services

  • Designing a SOA Integration Architecture
  • Implementing a SOA with Web Services
  • What SOA Does Not Provide
  • Business Process Modeling with SOA
  • Exercise 2: Designing Integration Layer

Chapter 3: XML in the Enterprise

  • XML: Syntax and Grammar
  • XML Namespaces
  • Exercise 3: Writing XML
  • XML Schema
  • Simple Types, Complex Types
  • Interoperability Limitations
  • Binary Data
  • Facets, Enumeration, Union
  • Exercise 4: Writing XML Payload to Conform to a Schema
  • XPath
  • XSLT
  • Try It Now: Invoke XSLT from Command-Line

Chapter 4: Java and XML

  • Java APIs for XML Parsing
  • SAX, DOM, and JAXB
  • Try It Now: SAX
  • Try It Now: DOM
  • Binding XML to Objects
  • JAXB Limitations
  • Exercise 5: JAXB Exercise: Creating JavaBeans from Permanent Exhibit Document
  • Java Transformation API
  • Try It Now: TRaX
  • Provider API
  • Dispatch API
  • Try It Now: XML-Level Web Services

Chapter 5: RESTful Services and Clients

  • Limitations of Provider API
  • JAX-RS
  • Path and Query Parameters
  • Exercise 6: JAX-RS Web Service
  • Dispatch API Client
  • Try It Now: Dispatch Client
  • Limitations of Dispatch API
  • Jersey Client API
  • Posting Forms
  • Exercise 7: JAX-RS Client
  • Limitations of JAX-RS

Chapter 6: Web Service Ingredients (SOAP and WSDL)

  • Role of SOAP in Web Services
  • Structure of a SOAP Message
  • WS-I Headers
  • Types of SOAP Messages
  • Exercise 8: Monitoring SOAP Using soapUI
  • Role of WSDL in Web Services
  • Try It Now: Accessing WSDL
  • Interface
  • Implementation
  • Deploying a WSDL
  • Exercise 9: Write and Deploy WSDL

Chapter 7: Creating a Web Service from WSDL

  • Why Choose WSIT/JAX-WS
  • Importing a WSDL and Generating a Web Service Endpoint
  • Best Practices in Dealing with Generated Code
  • Customizing the Generated Code
  • Structure of a Web Service WAR
  • Exercise 10: Create Service from WSDL
  • SOAPHandler and LogicalHandler
  • Try It Now: SOAP Handling (Server-Side)

Chapter 8: Building Web Service Clients

  • Generating Client Code from WSDL
  • Customizing the Created Client Code
  • Exercise 11: Creating JAX-WS Client
  • Synchronous, Polling, and Asynchronous Services
  • Asynchronous Clients
  • Java Executor Framework
  • Try It Now: Asynchronous Client
  • SOAPHandler and SOAPMessage
  • LogicalHandler
  • Changing SOAP Messages Using DOM, TRaX and JAXB
  • Try It Now: SOAP Handling (Client-Side)

Chapter 9: Code-First Web Services

  • Service Annotations
  • Generating a Web Service Tie
  • Exercise 12: Exposing a Java Class as a Web Service

Chapter 10: Orchestrating Web Services

  • Orchestrating Web Services in Java
  • Exercise 13: Orchestrating Web Services in Java
  • Orchestrating Web Services with BPEL

Chapter 11: Security, Reliability, and Addressing

  • Message Optimization
  • Reliability, Addressing
  • Security
  • Enabling WS-* Features

Appendix A: Java Annotations

Appendix B: Cryptography

Please Contact Your ROI Representative to Discuss Course Tailoring!