org.apache.axis.providers.java

Class JavaProvider

Implemented Interfaces:
Handler, Serializable
Known Direct Subclasses:
MsgProvider, RPCProvider

public abstract class JavaProvider
extends BasicProvider

Base class for Java dispatching. Fetches various fields out of envelope, looks up service object (possibly using session state), and delegates envelope body processing to subclass via abstract processMessage method.
Authors:
Doug Davis (dug@us.ibm.com)
Carl Woolf (cwoolf@macromedia.com)

Field Summary

static String
OPTION_ALLOWEDMETHODS
static String
OPTION_CLASSNAME
static String
OPTION_SCOPE
protected static Log
entLog
protected static Log
log

Fields inherited from class org.apache.axis.providers.BasicProvider

OPTION_EXTRACLASSES, OPTION_WSDL_INPUTSCHEMA, OPTION_WSDL_PORTTYPE, OPTION_WSDL_SERVICEELEMENT, OPTION_WSDL_SERVICEPORT, OPTION_WSDL_SOAPACTION_MODE, OPTION_WSDL_TARGETNAMESPACE, entLog, log

Fields inherited from class org.apache.axis.handlers.BasicHandler

makeLockable, name, options

Method Summary

protected Class
getServiceClass(String clsName, SOAPService service, MessageContext msgContext)
Returns the Class info about the service class.
protected String
getServiceClassName(Handler service)
Return the class name of the service
protected String
getServiceClassNameOptionName()
Return the option in the configuration that contains the service class name
Object
getServiceObject(MessageContext msgContext, Handler service, String clsName, IntHolder scopeHolder)
Get the service object whose method actually provides the service.
void
initServiceDesc(SOAPService service, MessageContext msgContext)
Fill in a service description with the correct impl class and typemapping set.
void
invoke(MessageContext msgContext)
Invoke the message by obtaining various common fields, looking up the service object (via getServiceObject), and actually processing the message (via processMessage).
protected Object
makeNewServiceObject(MessageContext msgContext, String clsName)
Default java service object comes from simply instantiating the class wrapped in jc
abstract void
processMessage(MessageContext msgContext, SOAPEnvelope reqEnv, SOAPEnvelope resEnv, Object obj)
Process the current message.

Methods inherited from class org.apache.axis.providers.BasicProvider

addOperation, generateWSDL, getOperationName, getOperationNames, getOperationQNames, initServiceDesc

Methods inherited from class org.apache.axis.handlers.BasicHandler

canHandleBlock, cleanup, generateWSDL, getDeploymentData, getName, getOption, getOptions, getUnderstoodHeaders, init, initHashtable, onFault, setName, setOption, setOptionDefault, setOptions, setOptionsLockable

Field Details

OPTION_ALLOWEDMETHODS

public static final String OPTION_ALLOWEDMETHODS

OPTION_CLASSNAME

public static final String OPTION_CLASSNAME

OPTION_SCOPE

public static final String OPTION_SCOPE

entLog

protected static Log entLog

log

protected static Log log

Method Details

getServiceClass

protected Class getServiceClass(String clsName,
                                SOAPService service,
                                MessageContext msgContext)
            throws AxisFault
Returns the Class info about the service class.

getServiceClassName

protected String getServiceClassName(Handler service)
Return the class name of the service

getServiceClassNameOptionName

protected String getServiceClassNameOptionName()
Return the option in the configuration that contains the service class name

getServiceObject

public Object getServiceObject(MessageContext msgContext,
                               Handler service,
                               String clsName,
                               IntHolder scopeHolder)
            throws Exception
Get the service object whose method actually provides the service. May look up in session table.

initServiceDesc

public void initServiceDesc(SOAPService service,
                            MessageContext msgContext)
            throws AxisFault
Fill in a service description with the correct impl class and typemapping set. This uses methods that can be overridden by other providers (like the EJBProvider) to get the class from the right place.
Overrides:
initServiceDesc in interface BasicProvider

invoke

public void invoke(MessageContext msgContext)
            throws AxisFault
Invoke the message by obtaining various common fields, looking up the service object (via getServiceObject), and actually processing the message (via processMessage).
Specified by:
invoke in interface Handler

makeNewServiceObject

protected Object makeNewServiceObject(MessageContext msgContext,
                                      String clsName)
            throws Exception
Default java service object comes from simply instantiating the class wrapped in jc

processMessage

public abstract void processMessage(MessageContext msgContext,
                                    SOAPEnvelope reqEnv,
                                    SOAPEnvelope resEnv,
                                    Object obj)
            throws Exception
Process the current message. Side-effect resEnv to create return value.
Parameters:
msgContext - self-explanatory
reqEnv - the request envelope
resEnv - the response envelope
obj - the service object itself

Copyright B) 2005 Apache Web Services Project. All Rights Reserved.