org.apache.axis2.jaxws.core.controller
Class InvocationController

java.lang.Object
  extended by org.apache.axis2.jaxws.core.controller.InvocationController
Direct Known Subclasses:
AxisInvocationController

public abstract class InvocationController
extends java.lang.Object

The InvocationController is an abstract implementation modeling the invocation of a target web service. All of the information that the InvocationController needs should exist within the InvocatonContext that is passed in to the various invoke methods.

The request information is passed in within the InvocationContext. The InvocationController assumes that there is a MessageContext within that InvocationContext that is populated with all of the information that it needs to invoke. If not, an error will be returned. Once the response comes back, the information for that response will be held inside of the MessageContext representing the response, that exists in the InvocationContext.

The InvocationController supports four different invocation patterns:

1) synchronous - This is represented by the invoke(InvocationContext) method. This is a blocking, request/response call to the web service.

2) one-way - This is represented by the invokeOneWay(InvocationContext) method. This is a one-way invocation that only returns errors related to sending the message. If an error occurs while processing, the client will not be notified.

3) asynchronous (callback) - invokeAsync(InvocationContext, AsyncHandler)

4) asynchronous (polling) - invokeAsync(InvocationContext)


Constructor Summary
InvocationController()
           
 
Method Summary
protected abstract  MessageContext doInvoke(MessageContext request)
           
abstract  Response doInvokeAsync(MessageContext mc)
           
abstract  java.util.concurrent.Future<?> doInvokeAsync(MessageContext mc, AsyncHandler asyncHandler)
           
protected abstract  void doInvokeOneWay(MessageContext mc)
           
 InvocationContext invoke(InvocationContext ic)
          Performs a synchronous (blocking) invocation of a target service.
 Response invokeAsync(InvocationContext ic)
          Performs an asynchronous (non-blocking) invocation of the client based on a callback model.
 java.util.concurrent.Future<?> invokeAsync(InvocationContext ic, AsyncHandler asyncHandler)
          Performs an asynchronous (non-blocking) invocation of the client based on a polling model.
 void invokeOneWay(InvocationContext ic)
          Performs a one-way invocation of the client.
protected abstract  void prepareRequest(MessageContext mc)
          Abstract method that must be implemented by whoever is providing the specific client binding.
protected abstract  void prepareResponse(MessageContext mc)
          Abstract method that must be implemented by whoever is providing the specific client binding.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InvocationController

public InvocationController()
Method Detail

invoke

public InvocationContext invoke(InvocationContext ic)
Performs a synchronous (blocking) invocation of a target service. The InvocationContext passed in should contain a valid MessageContext containing the properties and message to be sent for the request. The response contents will be processed and placed in the InvocationContext as well.

Parameters:
ic -
Returns:

doInvoke

protected abstract MessageContext doInvoke(MessageContext request)

invokeOneWay

public void invokeOneWay(InvocationContext ic)
Performs a one-way invocation of the client. This is SHOULD NOT be a robust invocation, so any fault that occurs during the processing of the request will not be returned to the client. Errors returned to the client are problems that occurred during the sending of the message to the server.

Parameters:
ic -

doInvokeOneWay

protected abstract void doInvokeOneWay(MessageContext mc)

invokeAsync

public Response invokeAsync(InvocationContext ic)
Performs an asynchronous (non-blocking) invocation of the client based on a callback model. The AsyncHandler that is passed in is the callback that the client programmer supplied when they invoked their JAX-WS Dispatch or their SEI-based dynamic proxy.

Parameters:
ic -
callback -
Returns:

doInvokeAsync

public abstract Response doInvokeAsync(MessageContext mc)

invokeAsync

public java.util.concurrent.Future<?> invokeAsync(InvocationContext ic,
                                                  AsyncHandler asyncHandler)
Performs an asynchronous (non-blocking) invocation of the client based on a polling model. The Response object that is returned allows the client programmer to poll against it to see if a response has been sent back by the server.

Parameters:
ic -
Returns:

doInvokeAsync

public abstract java.util.concurrent.Future<?> doInvokeAsync(MessageContext mc,
                                                             AsyncHandler asyncHandler)

prepareRequest

protected abstract void prepareRequest(MessageContext mc)
Abstract method that must be implemented by whoever is providing the specific client binding. Once this is called, everything that is needed to invoke the operation must be available in the MessageContext.

Parameters:
mc -

prepareResponse

protected abstract void prepareResponse(MessageContext mc)
Abstract method that must be implemented by whoever is providing the specific client binding. This is called after the response has come back and allows the client binding to put whatever info it has in the response MessageContext.

Parameters:
mc -


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