WSO2

Courses

Developing Web Services with SOAP and Apache Axis2
(2 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.

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
  • 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
  • Understanding of Apache 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:

  • Two 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 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 Axis2, testing it
    • Command-line tooling
  • Asynchronous Web Services
    • Reply-To
    • HTTP 202
    • Tracing an asynchronous interaction using HTTPTracer (TCP Monitor) 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
  • Client API
    • Using the ServiceClient API
    • Lab Exercise * Calling services using AXIOM and ServiceClient
  • Tooling
    • Using Axis2 in Eclipse
    • Ant Build scripts
    • Using Axis2 in a Unit test environment
    • Using the Eclipse plugin
    • Creating Unit tests
  • Advanced topics
    • REST
      • REST arguments and positioning
      • Using 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
      • Types of session and their scopes
      • Create a stateful service
    • More internals of Apache Axis2
      • Modules, phases, handlers
      • ClassLoader Hierarchy
      • Description and Context hierarchies
  • Wrap up talk
    • Tradeoffs / Best Practices
    • Interoperability issues
    • Production deployment issues / tips
    • Futures
    Request Info