WSO2

Courses

Developing Web Services with SOAP and Apache Axis2
(4 days)

Request Info

Course Summary:

Apache Axis2 is an implementation of the Simple Object Access Protocol (SOAP) Recommendation from the W3C and is a foundational technology for next generation Web services.

Apache Axis2 has a modular and flexible message handling pipeline. This course focuses on the details of message handling and provides clear hooks for implementations of associated Web services standards and protocols.

Course Objectives:

  • Deep understanding of SOAP, WSDL, WS-Addressing
  • Understanding of Service Oriented Architecture (SOA) and how to build one using Axis2 and Java
  • Better understanding of Web services security and reliability
  • How to install and configure Apache Axis2
  • How to create and consume Web services
  • Ability to generate Services and Clients using command line and IDE tools
  • How to make interactions secure and reliable
  • Understanding of Axis2 architecture
  • Understanding of all components/features of Axis2: AXIOM, Handlers, Phases, Policy, contexts
  • Knowledge of Axis2 Ant tasks and IDE plug-ins
  • Ability to do Test Driven Development of Axis2 applications

Duration:

  • Four days

Audience:

  • This course is suitable for developers with some understanding of Web services technologies and Service Oriented Architecture (SOA) concepts.

Prerequisites:

  • To benefit from this Axis2 training, the delegates should have a proficiency in Java and XML, as well as a basic knowledge of: SOAP, WSDL, Web services, and SOA.

Program:

  • Introduction, course outline, objectives
  • Recap on SOA and SOAP
    • SOA aims
    • Loose coupling
    • SOAP 1.1, SOAP 1.2
    • Examples of SOAP messages
    • Use a web-based tool to send and receive SOAP messages
  • Introduction to Apache Axis2
    • Overview
    • Aims
    • Top level components and flows
    • Demonstration
    • Repository
    • Install, start-up and test Apache Axis2
    • Explore repository, services, modules, axis2.xml
  • Introduction to WS-Addressing
    • Why WS-A?
    • Asynchronous model
    • Endpoint References
    • Reference Parameters
  • Creating services with Apache Axis2
    • Deploying Java components
    • XML-based services vs. Bound services
    • Creating a service with Apache Axis2, and testing it
    • Command-line tooling
  • Asynchronous Web Services
    • Reply-To
    • HTTP 202
    • Tracing an asynchronous interaction using HTTPTracer WSDL
    • WSDL 1.1 vs WSDL2
    • Tools for creating and reading WSDL
    • Contract first development
    • Lab Exercise * Create a WSDL
  • Building a Web service contract first
  • Creating Stubs and Skeletons
  • Building an end-to-end service from WSDL
  • Axis Data Binding
    • Intro to ADB
    • ADB options
    • XSD2Java
    • Alternatives to ABD * using XMLBeans
    • Exploring ADB
    • Using XSD2Java
    • Single class versus multi-class mapping
  • AXIOM
    • Looking at AXIOM and STaX
    • Detailed examples
    • Building XML structures dynamically
    • Creating and parsing XML using AXIOM
  • Dynamic clients
    • Using the ServiceClient API
    • Lab Exercise * Calling services using AXIOM and ServiceClient
  • Tooling
    • Using Apache Axis2 in Eclipse
    • Ant Build scripts
    • Using Apache Axis2 in a Unit test environment
    • Using the Eclipse plugin
    • Creating Unit tests
  • REST
    • REST arguments and positioning
    • Using XML/HTTP in a POST
    • The WSDL2.0 GET binding
    • Using Apache Axis2 with GET and POST
  • MTOM - building and using binary attachments with Apache Axis2
    • Build a binary service.
    • Trace with/without optimisation.
    • Calculate the size of attachment to optimise
  • Understanding Sessions with Apache Axis2
    • Using ServiceGroups and Axis2 context structure
    • EPR sessions vs HTTP Sessions
    • Create a stateful service
  • More internals of Apache Axis2
    • Modules, phases, handlers
    • ClassLoader Hierarchy
    • Description and Context hierarchies
    • Building and testing a simple Logging Module
  • Advanced Web Services
    • Overview of the full WS-platform
  • Introduction to WS Security
    • Authentication
    • Signature
    • Encryption
    • Efficiency of WSS vs HTTPS
    • Mixing HTTPS and WSS
    • Securing a Web Service with WSS4J Tracing flows
  • Introduction to WS Reliable Messaging
    • Simple flows
    • Reliable WS with Apache Sandesha2
    • Tracing flows
  • Introduction to WS-Policy and MetadataExchange
    • Why Policy?
    • Policy overview and Policy Assertion Languages
    • How Policy fits into Axis2
    • Policy driven RM client
  • Wrap up talk
    • Tradeoffs / Best Practices
    • Interoperability issues
    • Production deployment issues / tips
    • Futures
Request Info