bexee.axis
Class BexeeProvider

java.lang.Object
  extended byorg.apache.axis.handlers.BasicHandler
      extended byorg.apache.axis.providers.BasicProvider
          extended bybexee.axis.BexeeProvider
All Implemented Interfaces:
org.apache.axis.Handler, java.io.Serializable

public class BexeeProvider
extends org.apache.axis.providers.BasicProvider

This is the Axis provider (also commonly called pivot handler) used by all deployed BPEL process web services.

This provider takes the incoming SOAP message, performs a number of checks (e.g. verifying whether the requested operation can actually be performed by our ProcessController), puts all the necessary information into a new BexeeMessage and dispatches it to Dispatcher.

As soon as the provider receives the result back from the dispatcher, it will create a new SOAP response and hand it back to the Axis response flow, from where it will eventually be sent back to the client that invoked the service.

Version:
$Revision: 1.1 $, $Date: 2004/12/15 14:18:15 $
Author:
Patric Fornasier, Pawel Kowalski
See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.apache.axis.providers.BasicProvider
entLog, log, OPTION_EXTRACLASSES, OPTION_WSDL_INPUTSCHEMA, OPTION_WSDL_PORTTYPE, OPTION_WSDL_SERVICEELEMENT, OPTION_WSDL_SERVICEPORT, OPTION_WSDL_SOAPACTION_MODE, OPTION_WSDL_TARGETNAMESPACE
 
Fields inherited from class org.apache.axis.handlers.BasicHandler
makeLockable, name, options
 
Constructor Summary
BexeeProvider()
           
 
Method Summary
protected  BexeeMessage createBexeeMessage(java.lang.String service, java.lang.String operation, java.util.Vector params)
          Helper method to create the BexeeMessage
protected  java.lang.Object dispatch(BexeeMessage message)
          Call dispatcher to kick off the process controller and return result
 void generateWSDL(org.apache.axis.MessageContext ctx)
          Gets WSDL associated with requested BPEL process from DAO and adds binding information on the fly.
protected  java.lang.String getLocationURL(org.apache.axis.MessageContext ctx)
          Gets the service location URL.
protected  java.lang.String getServiceName(org.apache.axis.MessageContext ctx)
           
 void initServiceDesc(org.apache.axis.handlers.soap.SOAPService service, org.apache.axis.MessageContext msgContext)
           
 void invoke(org.apache.axis.MessageContext ctx)
          Creates a BexeeMessage from an incoming SOAP message and passes it to the Dispatcherfrom where it will be dispatched to the ProcessController.
 
Methods inherited from class org.apache.axis.providers.BasicProvider
addOperation, getOperationName, getOperationNames, getOperationQNames
 
Methods inherited from class org.apache.axis.handlers.BasicHandler
canHandleBlock, cleanup, getDeploymentData, getName, getOption, getOptions, getUnderstoodHeaders, init, initHashtable, onFault, setName, setOption, setOptionDefault, setOptions, setOptionsLockable
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BexeeProvider

public BexeeProvider()
Method Detail

initServiceDesc

public void initServiceDesc(org.apache.axis.handlers.soap.SOAPService service,
                            org.apache.axis.MessageContext msgContext)
                     throws org.apache.axis.AxisFault
Throws:
org.apache.axis.AxisFault

invoke

public void invoke(org.apache.axis.MessageContext ctx)
            throws org.apache.axis.AxisFault
Creates a BexeeMessage from an incoming SOAP message and passes it to the Dispatcherfrom where it will be dispatched to the ProcessController.

Once the processing is completed, the result from the Dispatcher is taken and put back into a SOAP message and passed back into the Axis response flow.

Right now and Object of type Elementis passed back into the response flow, because we don't generate Java objects from complex XML types.

TODO: This class needs some work, especially the message type stuff (possible improvements: code generation from wsdl, serializing and deserializing into Java objects)

Throws:
org.apache.axis.AxisFault

generateWSDL

public void generateWSDL(org.apache.axis.MessageContext ctx)
                  throws org.apache.axis.AxisFault
Gets WSDL associated with requested BPEL process from DAO and adds binding information on the fly.

If the target service endpoint URL can not be determined, a constant value with the default services root is assumed.

Throws:
org.apache.axis.AxisFault

getLocationURL

protected java.lang.String getLocationURL(org.apache.axis.MessageContext ctx)
Gets the service location URL.

Returns:
a String

getServiceName

protected java.lang.String getServiceName(org.apache.axis.MessageContext ctx)

createBexeeMessage

protected BexeeMessage createBexeeMessage(java.lang.String service,
                                          java.lang.String operation,
                                          java.util.Vector params)
                                   throws org.apache.axis.AxisFault
Helper method to create the BexeeMessage

Throws:
org.apache.axis.AxisFault

dispatch

protected java.lang.Object dispatch(BexeeMessage message)
                             throws DispatcherException
Call dispatcher to kick off the process controller and return result

Returns:
the result from the Dispatcher
Throws:
DispatcherException


Copyright © 2004 Berne University of Applied Sciences. All Rights Reserved.