Course Catalog
Curriculum Guides
  .NET
  Java/J2EE
  XML
Downloads
Buy Courseware
Customization
News
Authors
Technical Library
FAQ
About Object Innovations
Opportunities
Contact Us
Home

 

 

   
www.objectinnovations.com
info@objectinnovations.com
877-558-7246 (toll free)  
781-466-8012  

561.  Developing Java Web Services

Rev. 2.0

 

This course is now available directly from our partner, Capstone Courseware.

A comprehensive look at the state of the art in developing interoperable web services on the Java EE platform. Students learn the key standards -- SOAP, WSDL, and the WS-I Basic Profile -- and the Java architecture that has evolved to build interoperable services and clients. JAX-WS is central to the course, and we cover both WSDL-driven and Java-driven development paths, as well as message handlers and attachment support. With the new Provider and Dispatch APIs, it's now much easier to integrate SAAJ, JAXB, and JAXP code into services and clients, and we explore these strategies in depth as well.

 

(For training within the J2EE 1.4 environment, and a concentration on JAX-RPC and SAAJ, please see version 1.5.3 of this course.)

 

LEARNING OBJECTIVES

 

·         Be able to describe the interoperable web services architecture, including the roles of SOAP and WSDL.

·         Understand the importance of the WS-I Basic Profile for interoperable web services.

·         Build JAX-WS services and clients that take full advantage of the automated data binding of JAXB.

·         Use lower-level SOAP and XML APIs for services and/or clients.

·         Customize data binding by specifying specific type mappings or altering method or parameter names.

·         Expose session beans as web services.

·         Incorporate binary data, such as images, into service and client code.

 

Duration:  5 days.

 

Prerequisites:

 

·         Strong Java programming skills are essential -- Course 103 is excellent preparation.

·         Students must be able to read XML documents and to write well-formed XML by hand -- consider Course 501. Knowledge of XML Schema will be helpful, too, but is not a strict prerequisite.

·         Experience with other Java EE standards, especially servlets and JSP, will be very helpful in class, but is not strictly required.

 

1.      Overview of Web Services

Why Web Services?

Service-Oriented Architecture

HTTP and XML

Simple Object Access Protocol (SOAP)

Web Service Description Language (WSDL)

Universal Description, Discovery and Integration (UDDI)

The WS-I Basic and Related Profiles

REST

 

2.      Web Services for Java EE

Hosting Web Services: Scenarios

Invoking Web Services: Scenarios

Web Services for Java EE (WS4JEE)

The Automated Approach: JAX-WS and JAXB

Manual Options: SAAJ and JAXP

Portable Web-Services Metadata

Service Registries: JAXR

 

3.      The Simple Object Access Protocol

Messaging Model

Namespaces

SOAP over HTTP

The SOAP Envelope

The Message Header

The Message Body

SOAP Faults

Attachments

 

4.      The Java API for XML Binding

The Need for Data Binding

XML Schema

Two Paths

JAXB Compilation

Mapping Schema Types to Java

Java-to-XML Mapping Using Annotations

Marshaling and Unmarshaling

Working with JAXB Object Models

In-Memory Validation

 

5.      Web Services Description Language

Web Services as Component-Based Software

The Need for an IDL

Web Services Description Language

WSDL Information Model

The Abstract Model -- Service Semantics

Message Description

Messaging Styles

The Concrete Model -- Ports, Services, Locations

Extending WSDL -- Bindings

Service Description

 

6.      The Java API for XML-Based Web Services

Two Paths

How It Works: Build Time and Runtime

The Service Endpoint Interface

Working from WSDL

Working from Java

RPC and Document Styles

One-Way Messaging

Binary Protocols

 

7.      WSDL-to-Java Development

The @WebService Annotation

Generated Code

Compilation and Assembly

Deployment

Runtime Behavior

Scope of Code Generation

More JAXB: Mapping Collections

More JAXB: Mapping Enumerations

 

8.      Client-Side Development

Stubs and Proxies

Generated Code

Locating a Service

Invoking a Service

 

9.      Java-to-WSDL Development

The @WebMethod, @XmlParam, and Related Annotations

Scope of Code Generation

More JAXB: Mapping Inheritance

Controlling the XML Model

Controlling the WSDL Description

 

10. JAX-WS Best Practices

Which Way to Go?

Interoperability Impact

Portability Impact

Polymorphism in Web Services

Web Services as Java EE Components

Lifecycle Annotations

Context Interfaces

The @WebServiceRef Annotation

 

11. Provider and Dispatch APIs

Stepping Down

The Provider<T> Interface

Implementing a Provider

JAXB Without WSDL

Integrating JAXP

The Dispatch<T> Interface

Building Clients

 

12. The SOAP with Attachments API for Java

The SAAJ Object Model

Parsing a SOAP Message

Reading Message Content

Working with Namespaces

Creating a Message

Setting Message Content

 

13. Message Handlers

Handling SOAP Headers

Servlet Endpoint Context

MessageContext and SOAPMessageContext

Message Handlers and Handler Chains

Processing Model and Patterns

Client-Side Handlers

 

14. EJBs as Web Services

Enterprise JavaBeans

Three Tiers for Java EE

EJB3 and JAX-WS

Session Beans as Web Service Endpoints

The Bean's Service Endpoint Interface

SOAP as an EJB Protocol

Pitfalls

 

15. Handling Binary Content

The WS-I Attachments Profile

Using base64Binary

MIME Attachments

JAX-WS Support

MTOM and XOP

SAAJ Support

 

Appendix A. Learning Resources

Appendix B. Compatibility and Migration

JAX-RPC

Comparing JAX-RPC and JAX-WS

Using JAX-RPC and JAX-WS Together

SOAP "Section 5" Encoding

 

 

System Requirements

 

Hardware – minimal:                     1 GHz, 512 meg RAM, 1 gig disk space

Hardware – recommended:           2 GHz, 1 gig RAM, 1 gig disk space

Operating system:                          Tested on Windows XP Professional.

Software:                                       All free downloadable tools.