org.apache.axis.providers.java
Class RPCProvider

java.lang.Object
  extended byorg.apache.axis.handlers.BasicHandler
      extended byorg.apache.axis.providers.BasicProvider
          extended byorg.apache.axis.providers.java.JavaProvider
              extended byorg.apache.axis.providers.java.RPCProvider
All Implemented Interfaces:
Handler, java.io.Serializable
Direct Known Subclasses:
CORBAProvider, EJBProvider, RMIProvider

public class RPCProvider
extends JavaProvider

Implement message processing by walking over RPCElements of the envelope body, invoking the appropriate methods on the service object.

Author:
Doug Davis (dug@us.ibm.com)
See Also:
Serialized Form

Field Summary
protected static org.apache.commons.logging.Log log
           
 
Fields inherited from class org.apache.axis.providers.java.JavaProvider
entLog, OPTION_ALLOWEDMETHODS, OPTION_CLASSNAME, OPTION_SCOPE
 
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
 
Fields inherited from class org.apache.axis.handlers.BasicHandler
makeLockable, name, options
 
Constructor Summary
RPCProvider()
           
 
Method Summary
protected  void checkMethodName(MessageContext msgContext, java.lang.String allowedMethods, java.lang.String methodName)
          Throw an AxisFault if the requested method is not allowed.
protected  RPCElement createResponseBody(RPCElement body, MessageContext msgContext, OperationDesc operation, ServiceDesc serviceDesc, java.lang.Object objRes, SOAPEnvelope resEnv, java.util.ArrayList outs)
           
protected  RPCElement getBody(SOAPEnvelope reqEnv, MessageContext msgContext)
           
protected  OperationDesc getOperationDesc(MessageContext msgContext, RPCElement body)
           
protected  java.lang.Object invokeMethod(MessageContext msgContext, java.lang.reflect.Method method, java.lang.Object obj, java.lang.Object[] argValues)
          This method encapsulates the method invocation.
 void processMessage(MessageContext msgContext, SOAPEnvelope reqEnv, SOAPEnvelope resEnv, java.lang.Object obj)
          Process the current message.
 
Methods inherited from class org.apache.axis.providers.java.JavaProvider
getServiceClass, getServiceClassName, getServiceClassNameOptionName, getServiceObject, initServiceDesc, invoke, makeNewServiceObject
 
Methods inherited from class org.apache.axis.providers.BasicProvider
addOperation, generateWSDL, 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
 

Field Detail

log

protected static org.apache.commons.logging.Log log
Constructor Detail

RPCProvider

public RPCProvider()
Method Detail

processMessage

public void processMessage(MessageContext msgContext,
                           SOAPEnvelope reqEnv,
                           SOAPEnvelope resEnv,
                           java.lang.Object obj)
                    throws java.lang.Exception
Process the current message. Result in resEnv.

Specified by:
processMessage in class JavaProvider
Parameters:
msgContext - self-explanatory
reqEnv - the request envelope
resEnv - the response envelope
obj - the service object itself
Throws:
java.lang.Exception

getBody

protected RPCElement getBody(SOAPEnvelope reqEnv,
                             MessageContext msgContext)
                      throws java.lang.Exception
Throws:
java.lang.Exception

getOperationDesc

protected OperationDesc getOperationDesc(MessageContext msgContext,
                                         RPCElement body)
                                  throws org.xml.sax.SAXException,
                                         AxisFault
Throws:
org.xml.sax.SAXException
AxisFault

createResponseBody

protected RPCElement createResponseBody(RPCElement body,
                                        MessageContext msgContext,
                                        OperationDesc operation,
                                        ServiceDesc serviceDesc,
                                        java.lang.Object objRes,
                                        SOAPEnvelope resEnv,
                                        java.util.ArrayList outs)
                                 throws java.lang.Exception
Throws:
java.lang.Exception

invokeMethod

protected java.lang.Object invokeMethod(MessageContext msgContext,
                                        java.lang.reflect.Method method,
                                        java.lang.Object obj,
                                        java.lang.Object[] argValues)
                                 throws java.lang.Exception
This method encapsulates the method invocation.

Parameters:
msgContext - MessageContext
method - the target method.
obj - the target object
argValues - the method arguments
Throws:
java.lang.Exception

checkMethodName

protected void checkMethodName(MessageContext msgContext,
                               java.lang.String allowedMethods,
                               java.lang.String methodName)
                        throws java.lang.Exception
Throw an AxisFault if the requested method is not allowed.

Parameters:
msgContext - MessageContext
allowedMethods - list of allowed methods
methodName - name of target method
Throws:
java.lang.Exception


Copyright ? 2005 Apache Web Services Project. All Rights Reserved.