Table of Contents
Preface
Chapter 1: Introduction
Chapter 2: Looking into Axis2
Chapter 3: AXIOM
Chapter 4: Execution Chain
Chapter 5: Hacking Deployment
Chapter 6: Information Model
Chapter 7: Writing an Axis2 Service
Chapter 8: Writing an Axis2 Module
Chapter 9: Client API
Chapter 10: Session Management
Chapter 11: Contract First or Code First
Chapter 12: Advanced Topics
Index
- Chapter 1: Introduction
- Web Service History
- Web Services Overview
- How Do Organizations Move into Web Services?
- Web Services Model
- Web Services Standards
- XML-RPC
- SOAP
- Web Services Addressing (WS-Addressing)
- Service Description
- Web Services Description Language (WSDL)
- Web Services Life Cycle
- Apache Web Service Stack
- Why Axis2?
- Download and Install Axis2
- Binary Distribution
- WAR Distribution
- Source Distribution
- JAR Distribution
- Summary
- Chapter 2: Looking into Axis2
- Axis2 Architecture
- Core Modules
- XML Processing Model
- SOAP Processing Model
- Information Model
- Deployment Model
- Client API
- Transports
- Other Modules
- Code Generation
- Data Binding
- Extensible Nature of Axis2
- Service Extension of the Module
- Custom Deployers
- Message Receivers
- Summary
- Chapter 3: AXIOM
- Overview and Features
- What is Pull Parsing?
- AXIOM—Architecture
- Working with AXIOM
- Creating an AXIOM
- Creating an AXIOM from an Input Stream
- Creating an AXIOM Using a String
- Creating an AXIOM Programmatically
- Adding a Child Node and Attributes
- Working with OM Namespaces
- Working with Attributes
- Traversing the AXIOM Tree
- Serialization
- Advanced Operations with AXIOM
- Using OMNavigator for Traversing
- Xpath Navigation
- Accessing the Pull-Parser
- AXIOM and SOAP
- Summary
- Overview and Features
- Chapter 4: Execution Chain
- Handler
- Writing a Simple Handler
- Phase
- Types of Phases
- Global Phase
- Operation Phase
- Phase Rules
- Phase Name
- phaseFirst
- phaseLast
- before
- after
- after and before
- Invalid Phase Rules
- Flow
- Types of Phases
- Module Engagement and Dynamic Execution Chain
- Special Handlers in the Chain
- TransportReceiver
- Dispatchers
- MessageReceiver
- TransportSender
- Handler
- Summary
- Chapter 5: Hacking Deployment
- What's New in Axis2 Deployment?
- J2EE-like Deployment Mechanism
- Hot Deployment and Hot Update
- Repository
- Change in the Way of Deploying Handlers (Modules)
- New Deployment Descriptors
- Global Descriptor (axis2.xml)
- Service Descriptor (services.xml)
- Module Descriptor (module.xml)
- Available Deployment Options
- Archive-Based Deployment
- Directory-Based Deployment
- Deploying a Service Programmatically
- POJO Deployment
- Deploying and Running a Service in One Line
- Summary
- Chapter 6: Information Model
- Introduction
- Axis2 Static Data
- AxisConfiguration
- Parameters
- MessageFormatters and MessageBuilders
- TransportReceiver and TransportSender
- Flows and PhaseOrder
- AxisModule
- Service Description Hierarchy
- AxisServiceGroup
- AxisService
- AxisOperation
- AxisMessage
- Axis2 Contexts
- ConfigurationContext
- ServiceGroupContext
- ServiceContext
- OperationContext
- MessageContext
- Summary
- Chapter 7: Writing an Axis2 Service
- Introduction
- Code-First Approach
- Single-Class POJO Approach
- POJO with Class Having Package Name
- Deploying a Service Using a Service Archive File
- Writing the services.xml File
- Service Implementation Class
- Specifying the Message Receiver
- Creating a Service Archive File
- Different Ways of Specifying Message Receivers
- Specify Message Receivers at the Operation Level
- Specify Message Receivers at the Service Level for the Whole Service
- Specify Service-Level Message Receivers and Override Them with Operations
- Service Group and Single Service
- Adding Third-Party Resources
- Service WSDL and Schemas
- Contract-First Approach—Starting from WSDL
- Generating Code
- Filling the Service Skeleton
- Running the Ant Build File
- Deploying the Ant-Created Service Archive File
- Summary
- Chapter 8: Writing an Axis2 Module
- Introduction
- Module Concept
- Module Structure
- Module Configuration File (module.xml)
- Handlers and Phase Rules
- Parameters
- Module Configuration File (module.xml)
- Module Implementation Class
- WS-Policy
- Endpoints
- Writing the module.xml File
- Deploying and Engaging the Module
- Advanced module.xml
- Summary
- Chapter 9: Client API
- Introduction
- Blocking and Non-Blocking Invocation
- Inside Axis2 Client API
- ServiceClient API
- Available Ways of Creating a ServiceClient
- ServiceClient with a Working Sample
- Working with OperationClient
- ServiceClient API
- Summary
- Chapter 10: Session Management
- Introduction
- Stateless Nature of Axis2
- Types of Sessions in Axis2
- Session Creation and Session Destruction
- Java Reflection
- Using the Optional Interface
- Accessing MessageContext
- Request Session Scope
- SOAP Session Scope
- Transport Session Scope
- Application Scope
- Managing Session Using ServiceClient
- Summary
- Chapter 11: Contract First or Code First
- Introduction
- Code-First Approach
- Why Not the Code-First Approach?
- Contract-First Approach: Why is it So Special?
- Code-Generation Support in Axis2
- Sample 1: Use Default Code-Generation Options to Generate Server-Side Code
- Sample 2: Use a Different Databinding
- Sample 3: Generate an Interface Instead of a Concrete Class
- Sample 4: Generating Client-Side Code
- Summary
- Chapter 12: Advanced Topics
- REST—Representational State Transfer
- Features of REST
- REST Services in Axis2
- MTOM—Message Transmission Optimization Mechanism
- MTOM on the Client Side
- MTOM on the Service Side
- Axis2 ClassLoader Hierarchy
- Sharing Libraries Using the Class Loader Hierarchy
- Axis2 Configurator
- Deploying Axis2 in Various Application Servers
- Summary
- REST—Representational State Transfer



