Axis Reference Guide

Alpha 3 Version

Table of Contents

Deployment Reference

Note : all the elements referred to in this section are in the WSDD namespace, namely "http://wsdd".
<deployment>
The root element of the deployment document which tells the Axis engine that this is a deployment. Must be in the "AdminService" namespace.
 
<undeployment>
The root element of the deployment document which tells Axis that this is an undeployment. Must be in the "AdminService" namespace.
 
<handler name="name" type="type"/>
Belongs inside a deploy or undeploy. Names a Handler, and indicates the class which corresponds to the name. May contain an arbitrary number of <option name="name" value="value"> elements, each of which will supply an option to the deployed Handler.
 
<service name="name" provider="provider" >
Deploys/undeploys an Axis Service. Common options for this element (i.e. subelements of the form <parameter name="name" value="value"/>) include:
className : the backend implementation class
methodName : the allowed methods
allowedRoles : comma-separated list of roles allowed to access this service

If you wish to define handlers which should be invoked either before or after the service's provider, you may do so with the <requestFlow> and the <responseFlow> subelements. Either of those elements may be specified inside the <service> element, and their semantics are identical to the <chain> element described below - in other words, they may contain <handler> and <chain> elements which will be invoked in the order they are specified.

<chain name="
name">
<subelement/>...
</chain>
Defines a chain. Each handler (i.e. deployed handler name) in the list will be invoked() in turn when the chain is invoked. This enables you to build up "modules" of commonly used functionality. The subelements inside chains may be <handler>s or <chain>s. <handler>s inside a <chain> may either be defined in terms of their Java class:
<chain name="myChain">
  <handler type="java:org.apache.axis.handlers.LogHandler"/>
</chain>
or may refer to previously defined <handlers>, with the "type" of the handler referring to the name of the other handler definition:
<handler name="logger" type="java:org.apache.axis.handlers.LogHandler"/>
<chain name="myChain"/>
<handler type="logger"/>
</chain>
<transport name="name">
Defines a transport on the server side. Server transports are invoked when an incoming request arrives. A server transport may define <requestFlow> and/or <responseFlow> elements to specify handlers/chains which should be invoked during the request (i.e. incoming message) or response (i.e. outgoing message) portion of processing (this function works just like the <service> element above). Typically handlers in the transport request/response flows implement transport-specific functionality, such as parsing protocol headers, etc.
 
<transport name="name" pivot="handler type" >
Defines a transport on the client side, which is invoked when sending a SOAP message. The "pivot" attribute specifies a Handler to be used as the actual sender for this transport (for example, the HTTPSender). Request and response flows may be specified as in server-side transports to do processing on the request (i.e. outgoing message) or response (i.e. incoming message).
 
<typeMapping qname="ns:localName" classname="classname" serializer="classname" deserializer="classname"/>
Each typeMapping maps an XML qualified name to/from a Java class, using a specified Serializer and Deserializer.
 
<beanMapping qname="ns:localName" classname="classname">
A simplified type mapping, which uses pre-defined serializers/deserializers to encode/decode JavaBeans. The class named by "classname" must follow the JavaBean standard pattern of get/set accessors.

Pre-Configured Axis Components Reference

On the server:

LogHandler
The LogHandler will simply log a message to a logger when it gets invoked.
EchoHandler
The EchoHandler copies the request message into the response message.
HTTPAuth
The HTTPAuthHandler takes HTTP-specific authentication information (right now, just Basic authentication) and turns it into generic MessageContext properties for username and password
SimpleAuthenticationHandler
The SimpleAuthentication handler passes a MessageContext to a SecurityProvider (see org.apache.axis.security) to authenticate the user using whatever information the SecurityProvider wants (right now, just the username and password).
SimpleAuthorizationHandler
This handler, typically deployed alongside the SimpleAuthenticationHandler (a chain called "authChecks" is predefined for just this combination), checks to make sure that the currently authenticated user satisfies one of the allowed roles for the target service. Throws a Fault if access is denied.
URLMapper
The URLMapper, an HTTP-specific handler, usually goes on HTTP transport chains (it is deployed by default). It serves to do service dispatch based on URL - for instance, this is the Handler which allows URLs like http://localhost:8080/axis/services/MyService?wsdl to work.
 
RPCDispatcher
The RPCDispatcher is the pivot point for all RPC services. It accepts the following options:
className = the class of the backend object to invoke
methodName = a space-separated list of methods which are exported as web services. The special value "*" matches all public methods in the class.
MsgDispatcher
The MsgDispatcher is the pivot point for all messaging services. It accepts the following options:
className = the class of the backend object to invoke
methodName = a space-separated list of methods which are exported as web services. The special value "*" matches all public methods in the class.
LocalResponder
The LocalResponder is a Handler whose job in life is to serialize the response message coming back from a local invocation into a String. It is by default on the server's local transport response chain, and it ensures that serializing the message into String form happens in the context of the server's type mappings.

On the client:

HTTPSender
A Handler which sends the request message to a remote server via HTTP, and collects the response message.
LocalSender
A Handler which sends the request message to a "local" AxisServer, which will process it and return a response message. This is extremely useful for testing, and is by default mapped to the "local:" transport. So, for instance, you can test the AdminClient by doing something like this:
% java org.apache.axis.client.AdminClient -llocal:// list