Class AbstractDispatcher

java.lang.Object
org.apache.axis2.handlers.AbstractHandler
org.apache.axis2.engine.AbstractDispatcher
All Implemented Interfaces:
Handler
Direct Known Subclasses:
AddressingBasedDispatcher, HTTPLocationBasedDispatcher, JSONBasedDefaultDispatcher, 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.

  • Field Details

  • Constructor Details

    • AbstractDispatcher

      public AbstractDispatcher()
  • Method Details

    • 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