PROGRAMMING JAX-WS WEB SERVICES WITH ECLIPSE ON JBOSS 5.1 – GTWB07

Course Description

This course is for students looking to build and perfect their web service development knowledge. Starting from the basics of Web Service concepts (such as WSDL, XML schema, and JAXB), the student will learn all aspects of programming a JAX-WS 2.1 web service. Additionally, advanced topics such as Web Services Interoperability (WS-I), WS-Reliable Messaging and WS-Addressing will also be covered. All development will be performed using JBoss 5.1 and Eclipse WTP.
JBoss supports multiple implementations of web service functionality, one of them being the Apache CXF (formerly XFire) project in addition to the “native” JBoss web service stack. This course shows students how to develop web services with the Apache CXF JBoss web service stack, which is also supported on the JBoss Enterprise Application Platform. Since the future direction of JBoss is to move away from the “native” stack and support Apache CXF as the default web service implementation this course will prepare developers to write applications using the Apache CXF implementation so that applications are better “future proof” for future JBoss versions.

After completing this course, the student should be able to:

  • Confidently design XML schema and WSDL.
  • Tell the difference between different SOAP styles (document literal, RPC literal etc.)
  • Implement a Web Service using Eclipse WTP and JBoss.
  • Write a Web Services client using standard Java specifications.
  • Secure web services.
  • Learn the interoperability issues especially with the .NET platform.

^^

Duration

5 days

^^

Target Audience

Java EE developers who will like to learn about how to build a Web Services based solution. This class covers many advanced topics that will help them build a solution appropriate for a large business.

^^

Course Prerequisites

Java programming. Beginner level knowledge of Java EE and XML.

For those with no prior Java EE experience the following course is suggested:

^^

Suggested Follow on Courses

There are a number of options of suitable follow-on courses, depending on your business needs. Please Contact us for further details.

^^

Course Content

CHAPTER 1. JAVA EE TOOLS IN ECLIPSE WTP

Eclipse Platform

Eclipse Workspace

Perspectives, Views & Editors

Basic Operations with Eclipse Views and Perspectives

The Java Perspective

The Debug Perspective

Navigator View

Package Explorer

Outline View

Problems View

Eclipse Preferences

Build and Validation

Code Completion, Templates and Snippets

Searching

Configure Compiler Class Path

JRE Switching

Eclipse WTP

Java EE Perspectives

Project Explorer View

Servers View

JPA Tools

CHAPTER 2. INTRODUCTION TO WEB SERVICES

A Conceptual Look at Services

Defining Services

Service Communication Analogy

Three Key Service Questions

Connecting the Dots

SOA: Runtime Implementation

What Is a Web Service?

Enterprise Assets as Services

Typical Development Workflow

Advantages of Web Services

Web Service Business Models

Example: Internal System Integration

Example: Business Process Externalization

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

CHAPTER 3. INTRODUCTION TO SCHEMA

What is an XML Schema?

Instance Documents

A Simple Instance Document

Creating a Schema File

Defining a Simple Element

Defining a Complex Element

Defining Element Attributes

Referring to an Element From Another Element

Adding Restrictions

Putting It All Together

Referring to a Schema from an XML Document

Global Elements vs. Local Elements

CHAPTER 4. 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>

CHAPTER 5. THE JAVA ARCHITECTURE FOR XML BINDING (JAXB)

Introduction to 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

CHAPTER 6. INTRODUCTION TO JAX-WS

What is JAX-WS?

Advantages of JAX-WS

Why Do We Need a Programming Model?

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

CHAPTER 7. WEB SERVICES DESCRIPTION LANGUAGE (WSDL)

WSDL Overview

WSDL Syntax Overview

<definitions>

<import>

<types>

<message>

<portType>

<operation>

<binding>

<service>

CHAPTER 8. 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

CHAPTER 9. SIMPLE OBJECT ACCESS PROTOCOL (SOAP)

SOAP Overview

SOAP in Protocol Stack

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

CHAPTER 10. WEB SERVICES INTEROPERABILITY (WS-I)

Goal

What Comes out of WS-I?

WS-I Tools

Profiles

WS-I Messaging

Messaging Highlights

Service Description

Service Description Highlights

Service Publication/Discovery

Security

.NET Interoperability

CHAPTER 11. BUILDING AN EJB BASED WEB SERVICE

Why Use EJB as Service Implementation?

Implementing EJB Web Service

Using a Service Endpoint Interface (SEI)

Summary

CHAPTER 12. 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

CHAPTER 13. ERROR HANDLING

Fault

Designing Faults

System Problems

Business Rule Violation

CHAPTER 14. MANAGED WEB SERVICE CLIENT BINDING

JBoss Web Service Deployment

Routing Web Service Requests

Writing Portable Web Service Clients for JBoss

Using a Packaged WSDL

Managed Web Service Clients

JBoss @WebServiceRef Customization

JBoss Web Service Tools

Running JBoss Web Services in Eclipse

CHAPTER 15. ENTITIES AND JAVA PERSISTENCE API

Data Persistence

Java Persistence API

Entities

Session Beans Vs Entities

Entities

Persisting and Retrieving Data

Accessing Entities

EntityManager & Persistence Unit

Persistence Context

Entities – Example

persistence.xml – Hibernate Provider

persistence.xml – Open JPA Provider

persistence.xml – Toplink

Entity Instance Lifecycle

Creating EntityManager in Session EJB

Creating EntityManager in a Plain Java Class

Working With the EntityManager Interface

Transaction Basics

CHAPTER 16. 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

CHAPTER 17. 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

CHAPTER 18. 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

CHAPTER 19. WS-ADDRESSING

What is WS-Addressing?

WS-Addressing and Long Running Services

Other Uses of WS-Addressing

WS-Addressing SOAP Header Elements

Example Client SOAP Request

Example Callback SOAP Request

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”

Security and Firewall Issues

CHAPTER 20. WS-RELIABLEMESSAGING

The Problem with HTTP

Enter WS-ReliableMessaging

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

CHAPTER 21. 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

CHAPTER 22. BEST PRACTICES

Architecture Best Practices

Data Format Best Practices

Security Best Practices

Programming Model Best Practi

^^

See more JBoss courses