org.apache.axis2.engine
Class AbstractDispatcher

java.lang.Object
  extended by org.apache.axis2.handlers.AbstractHandler
      extended by org.apache.axis2.engine.AbstractDispatcher
All Implemented Interfaces:
Handler
Direct Known Subclasses:
AddressingBasedDispatcher, GenericProviderDispatcher, HTTPLocationBasedDispatcher, MustUnderstandValidationDispatcher, RequestURIBasedDispatcher, RequestURIOperationDispatcher, SOAPActionBasedDispatcher, SOAPMessageBodyBasedDispatcher

public abstract class AbstractDispatcher
extends AbstractHandler

This the base class for all dispatchers. A dispatcher's task is to find the service for an incoming SOAP message.

In Axis2, a chain of dispatchers is setup. Each tries to dispatch and return without throwing an exception, in case it fails to find the service or operation. Dispatchers look for services, operations, or both.


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.axis2.engine.Handler
Handler.InvocationResponse
 
Field Summary
static java.lang.String NAME
          Field NAME
 
Fields inherited from class org.apache.axis2.handlers.AbstractHandler
handlerDesc
 
Constructor Summary
AbstractDispatcher()
           
 
Method Summary
abstract  AxisOperation findOperation(AxisService service, MessageContext messageContext)
          Called by Axis Engine to find the operation.
abstract  AxisService findService(MessageContext messageContext)
          Called by Axis Engine to find the service.
abstract  void initDispatcher()
           
 Handler.InvocationResponse invoke(MessageContext msgctx)
          This method will be called on each registered handler when a message needs to be processed.
 
Methods inherited from class org.apache.axis2.handlers.AbstractHandler
cleanup, flowComplete, getHandlerDesc, getName, getParameter, init, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

NAME

public static final java.lang.String NAME
Field NAME

See Also:
Constant Field Values
Constructor Detail

AbstractDispatcher

public AbstractDispatcher()
Method Detail

findOperation

public abstract AxisOperation findOperation(AxisService service,
                                            MessageContext messageContext)
                                     throws AxisFault
Called by Axis Engine to find the operation.

Parameters:
service -
messageContext -
Returns:
Returns AxisOperation.
Throws:
AxisFault

findService

public abstract AxisService findService(MessageContext messageContext)
                                 throws AxisFault
Called by Axis Engine to find the service.

Parameters:
messageContext -
Returns:
Returns AxisService.
Throws:
AxisFault

initDispatcher

public abstract void initDispatcher()

invoke

public Handler.InvocationResponse invoke(MessageContext msgctx)
                                  throws AxisFault
Description copied from interface: Handler
This method will be called on each registered handler when a message needs to be processed. If the message processing is paused by the handler, then this method will be called again for the handler that paused the processing once it is resumed.

This method may be called concurrently from multiple threads.

Handlers that want to determine the type of message that is to be processed (e.g. response vs request, inbound vs. outbound, etc.) can retrieve that information from the MessageContext via MessageContext.getFLOW() and MessageContext.getAxisOperation().getMessageExchangePattern() APIs.

Parameters:
msgctx -
Returns:
An InvocationResponse that indicates what the next step in the message processing should be.
Throws:
AxisFault


Copyright © 2007 Apache Web Services Project. All Rights Reserved.