Home About Courses Schedule Services Webinars Contact Search

Developing SOAP Web Services in Java


Duration: 5 Days

Method: Instructor led, Hands-on workshops

Price: $2750.00

Course Code: WS1308


Java developers and architects who need to identify, design, and implement web services.


Do you need a comprehensive look at the state of the art in developing interoperable web services on the Java EE 6 platform? you will 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.

We begin with an introductory module that covers both SOAP-based and RESTful services, and therefore both JAX-WS and JAX-RS. Although JAX-WS is central to the course, 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. Today’s development environments are increasingly dominated by sophisticated tooling that makes the initial development of web services less arduous. The production-level implementation, deployment, and maintenance of web services are far more complex and demanding.

Developing SOAP Web Services in Java 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 relating to web services.


Upon successful completion of this course, the student 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 J2EE Web Services
  • Expose existing Java components as XML Web Services
  • Write Java components that access remote Web Services
  • 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


Strong Java programming skills are essential. Students must be able to read XML documents and to write well-formed XML. 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.


  • I. Overview of Web Services
    • Why Web Services?
    • Service-Oriented Architecture
    • HTTP and XML
    • SOAP
    • WSDL
    • The SOAP Vision
    • The REST Vision
    • UDDI
    • The WS-I Basic Profile
    • Security
  • II. Web Services for Java EE
    • Hosting Web Services: Scenarios
    • Web Services for Java EE
    • JAX-WS and JAXB
    • Web-Services Metadata
    • WSDL-to-Java and Java-to-WSDL Paths
    • Provider and Dispatch APIs
    • SAAJ and JAXP
    • JAX-RS for RESTful Services
    • JAXR
  • III. 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
  • IV. The Simple Object Access Protocol
    • Messaging Model
    • Namespaces
    • SOAP over HTTP
    • The SOAP Envelope
    • The Message Header
    • The Message Body
    • SOAP Faults
    • Attachments
  • V. 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
  • VI. 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
  • VII. WSDL-to-Java Development
    • The @WebService Annotation
    • Generated Code
    • Scope of Code Generation
    • Parameter Order
    • More JAXB: Mapping Collections
    • More JAXB: Mapping Enumerations
    • Applying JAXB Customizations
  • VIII. Client-Side Development
    • Stubs and Proxies
    • Generated Code
    • Locating a Service
    • Invoking a Service
    • The @WebServiceRef Annotation
  • IX. Java-to-WSDL Development
    • Generating the WSDL and Schema
    • The @WebMethod, @XmlParam, and Related Annotations
    • More JAXB: Mapping Inheritance
    • Controlling the XML Model
    • Controlling the WSDL Description
    • JAXB Customizations with @XmlJavaTypeAdapter
  • X. Exception Handling
    • SOAP Faults vs. Java Exceptions
    • Mapping Faults from WSDL
    • Mapping Exceptions from Java
    • JAX-WS Exception API and Handling
    • Client Exception Handling
  • XI. 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
  • XII. Metadata
    • Abstract and Concrete Model Metadata
    • Defaults
    • Annotations
    • webservices.xml and web.xml
    • Best Practices and Pitfalls
  • XIII. Provider and Dispatch APIs
    • Stepping Down
    • The @WebServiceProvider Annotation
    • The Provider<T> Interface
    • Implementing a Provider
    • The @ServiceMode Annotation
    • JAXB Without WSDL
    • Integrating JAXP
    • The Dispatch<T> Interface
    • Building Clients
  • XIV. 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
    • Relationship to the DOM
  • XV. Message Handlers
    • Handling SOAP Headers
    • Handlers and Handler Chains
    • Configuration by XML or Annotation
    • MessageContext and SOAPMessageContext
    • Processing Model and Patterns
    • Logical and Protocol Handlers
    • Client-Side Handlers
  • XVI. Handling Binary Content
    • The WS-I Attachments Profile
    • Using base64Binary
    • MTOM and XOP
    • JAX-WS Support
    • Configuration by XML or Annotation
    • Client-Side Support
    • SAAJ Support