Programming SOAP Web Services With JAX-WS

Course:  SOAPWS
Duration:  5 Days
Level:  II
Course Summary

This course will teach students how to develop SOAP Web Service provider and consumer applications for the WebSphere Application Server 8.0 platform. It will explain the theory behind XML schema, WSDL and SOAP. It will also teach students various Java specifications that cover Web Services development (such as JAX-WS and JAXB).

Advanced topics such as WS-Security, WS-Addressing, WS-ReliableMessaging and WS-Trust are also covered.

« Hide The Details
Topics Covered In This Course

Introduction To Web Services

  • Defining Services
  • Service Communication Analogy
  • SOA: Runtime Implementation
  • Enterprise Assets as Services
  • Typical Development Workflow
  • Advantages of Web Services
  • Web Service Business Models
  • Web Services Standards
  • Binding via SOAP
  • SOAP in Protocol Stack
  • SOAP Structure
  • SOAP Message Architecture
  • Applying SOAP
  • Interface via WSDL
  • WSDL Structure
  • Applying WSDL
  • Locating a Service
  • UDDI Overview
  • UDDI Terminology
  • UDDI Structure
  • Applying UDDI
  • WS-I Overview
  • WS-I Deliverables

Basic Xml Schemas

  • What is XML Schema ?
  • Goals of Schema
  • Converting DTDs to Schema
  • The equivalent schema
  • Sample instance document
  • Documents Needed
  • XML Schema Namespaces
  • Link Documents to Schemas
  • Inline element declarations
  • XSchema Data Types
  • XSchema Type Definitions
  • XSchema Simple Data Types
  • Primitive Data Types
  • Simple Types
  • Facet ? Restrictions on Element Content
  • Using the Facet
  • More Samples
  • Define Simple Element Type
  • Element Declaration
  • Element Occurrence Indicators
  • Complex Type
  • Attribute Declaration
  • Attribute Declarations
  • Occurrence of Attributes
  • Value Constraints on Attributes
  • Sequence Element
  • Element Choices
  • Express any order
  • Annotations

Complex Data Types in Schema

  • Simple Types
  • Complex Types
  • Complex Type Example
  • Controlling Content
  • <sequence>
  • <choice>
  • <all>
  • Combining It All
  • The XML
  • Anonymous vs. Named
  • Address Example
  • Named Complex Types
  • Named ComplexType Example
  • Using Named Complex Type
  • The XML
  • <xs:any>

The Java Architecture for Xml Binding (JAXB)

  • Overview of Data Binding
  • JAXB Architecture
  • Binding Example
  • Binding Framework Example
  • Java and XML Mapping Overview
  • Namespace and Package Name Mapping
  • Simple Type Mapping
  • Complex Type Mapping
  • Customizing Complex Type Mapping
  • Property Accessor Customization
  • Property Mapping Customization
  • XML Element Mapping
  • Mapping Java Enums
  • Mapping Collections
  • Generating Java Class and Schema
  • Marshalling and Unmarshalling

Introduction to JAX-WS

  • What is JAX-WS?
  • Advantages of JAX-WS
  • Basic Java to WSDL Mapping
  • Developing a Service Provider
  • The Service Implementation Class
  • The Service Endpoint Interface (SEI)
  • Service Implementation Options
  • Developing a Consumer
  • Static Client Development
  • The Service Class
  • The BindingProvider Interface

Web Services Description Language (WSDL)

  • WSDL Overview
  • WSDL Syntax Overview
  • <definitions>
  • <import>
  • <types>
  • <message>
  • <portType>
  • <operation>
  • <binding>
  • <service>

Simple Object Access Protocol (SOAP)

  • SOAP Overview
  • SOAP Document Components
  • Example SOAP Request Document
  • Example SOAP Response Document
  • The <Envelope> Element
  • The <Header> Element
  • The <Body> Element
  • SOAP Communication Style
  • Communication Style Example
  • Setting the Style in WSDL
  • RPC/Encoded Style
  • RPC/Literal Style
  • Document/Literal Style
  • Document/Literal Wrapped Style

Web Services Interoperability (WS-I)

  • WS-I Tools
  • Profiles
  • WS-I Messaging
  • Messaging Highlights
  • Service Description
  • Service Description Highlights
  • Service Publication/Discovery
  • Security
  • .NET Interoperability

JAX-WS Mapping Details

  • Introduction to Mapping in JAX-WS
  • Top-down and Bottom-up Mapping
  • WSDL to Java Mapping
  • XML Data Type to JavaBean Mapping
  • Mapping <portType> to the SEI
  • Mapping the SOAP <binding>
  • Customizing WSDL to Java Mapping
  • Java to WSDL Mapping
  • JavaBean to XML Mapping
  • Mapping SEI to <portType>
  • Mapping Java Method to <operation>
  • Input Parameter Mapping
  • Method Output Mapping
  • Bare Input and Output Mapping
  • RPC Literal Style
  • Service Provider Annotation
  • Web Service Provider Example
  • Service Provider Annotations
  • JAX-WS Clients
  • Synchronous and Asynchronous Calls

Advanced JAX-WS API

  • Publishing a Web Service
  • Web Service Context
  • Message Context
  • Working With Raw XML
  • Raw XML: Server Side
  • XML Handling Strategies
  • Raw XML: Client Side

Building an EJB Based Web Service

  • Why Use EJB as Service Implementation?
  • Implementing EJB Web Service
  • Using a Service Endpoint Interface (SEI)

Error Handling

  • Fault
  • Designing Faults
  • System Problems
  • Business Rule Violation

Managed Web Service Client Binding

  • Using a Packaged WSDL
  • Managed Web Service Clients
  • Injecting the Service Port Directly
  • Web Service Administration Tasks
  • Configure Endpoint URL in Consumer Side
  • Configure Endpoint URL in Provider Side
  • Publishing WSDL File
  • Working with Policy Sets
  • Stopping a Service Listener


  • What is WS-Addressing?
  • WS-Addressing and Long Running Services
  • Other Uses of WS-Addressing
  • WS-Addressing SOAP Header Elements
  • Writing JAX-WS Clients to use WS-Addressing
  • Enabling Asynchronous Service Requests
  • Using WS-Addressing from the Client
  • Providing an AsyncHandler to Handle Callbacks
  • WS-Addressing Headers in SOAP Messages
  • WS-Addressing Sequence of Events
  • Asynchronous "Polling"
  • Endpoint References
  • Associating Actions with WSDL Operations
  • Faults
  • Security and Firewall Issues


  • When to Use Reliable Messaging?
  • How Does WS-RM Work?
  • Importance of Persistence
  • The Problem With Firewall
  • How Does WS-MakeConnection Work?
  • Using WS-MakeConnection

Web Services Handlers

  • Handlers
  • Basic Handler Behavior
  • Basic Steps
  • JBoss Note
  • Handler Classes
  • LogicalHandlers
  • Protocol Handlers
  • Sample Handler
  • Getting Message Details
  • Inbound and Outbound
  • Handler Configuration File
  • Sampler Handler.xml
  • Specify the Handler Chain
  • Sample: Using A Handler
  • Executing

Using MTOM for Binary Data

  • What is MTOM?
  • How MTOM Differs from Previous Approaches
  • Role of XML-binary Optimized Packaging (XOP)
  • Example of MTOM Messages
  • Enabling MTOM on a JAX-WS Service
  • Enabling MTOM on a Client

Web Services Security (WS-Security)

  • The Challenges
  • Public Key Infrastructure (PKI)
  • Digital Signature
  • Certificates
  • Overview of Web Services Security
  • SOAP Message Security
  • Message Integrity
  • Message Confidentiality
  • Symmetric Encryption Example
  • Authentication Using Identity Token
  • Authentication
  • Transport Level Security
  • Audit Tracking
  • Identity Assertion Using SAML
  • SAML SOAP Example

WS-Trust and WS-Federation

  • Review of WS-Security Authentication Model
  • How WS-Trust Works
  • WS-Federation
  • Federation Metadata Example
  • Requesting a Token
  • Dynamic Conversation

Interoperability of WS-Security

  • Interoperability Challenges
  • Recall WS-Security
  • Platform Run-Time Issues
  • Hints
  • Recall: WS-I
  • Basic Security Profile v1.0
  • Using Basic Security Profile 1.0
  • BSP 1.0 Details
  • BSP 1.0 Highlights


  • The Problem with One-to-One Messaging
  • Publish-Subscribe Messaging to the Rescue
  • Enter WS-Notification
  • When to Use WS-Notification
  • WS-Notification Terminology
  • Push and Pull Consumers
  • Push Consumer
  • Pull Consumer
  • Advantages of Using the Pull Consumer
What You Can Expect

At the end of this course, students will be able to:

  • Design XML schema and WSDL.
  • Tell the difference between SOAP styles (document literal, RPC literal etc.)
  • Implement a Web Service using RAD 8.0 and WebSphere 8.0.
  • Write a Web Services client using standard Java specifications.
  • Secure web services.
  • Understand the interoperability issues especially with the .NET platform.
  • Utilize advanced web service features for reliable messaging and attachments
Who Should Take This Course

This course is designed for Java EE developers who want to learn how to build a SOAP Web Services based solution.

Recommended Prerequisites

Students should already have an understanding of Java programming.

Training Style

Instructor led with 50% lecture and 50% lab.

« Hide The Details
Related Courses
Code Course Title Duration Level
RESTful Web Services Development
5 Days
Development With Java's XML APIs
2 Days
Advanced XML with SOAP
2 Days
Developing Java Web Services
5 Days
Web Services Development in Java
5 Days

Every student attending a Verhoef Training class will receive a certificate good for $100 toward their next public class taken within a year.

You can also buy "Verhoef Vouchers" to get a discounted rate for a single student in any of our public or web-based classes. Contact your account manager or our sales office for details.

Schedule For This Course
There are currently no public sessions scheduled for this course. We can schedule a private class for your organization just a couple of weeks from now. Or we can let you know the next time we do schedule a public session.
Notify me the next time this course is confirmed!
Can't find the course you want?
Call us at 800.533.3893, or
email us at [email protected]