## org.apache.axis.providers.java
Class RPCProvider

    java.lang.Object
      org.apache.axis.handlers.BasicHandler
          org.apache.axis.providers.BasicProvider
              org.apache.axis.providers.java.JavaProvider
                  org.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.