axis.dynamic
Class ObjectRPCProvider

java.lang.Object
  extended by org.apache.axis.handlers.BasicHandler
      extended by org.apache.axis.providers.BasicProvider
          extended by org.apache.axis.providers.java.JavaProvider
              extended by org.apache.axis.providers.java.RPCProvider
                  extended by axis.dynamic.ObjectRPCProvider
All Implemented Interfaces:
Serializable, org.apache.axis.Handler

public class ObjectRPCProvider
extends org.apache.axis.providers.java.RPCProvider

Variant of the JavaProviders, that does not create the service object but always uses the same instance. All the methods overridden here are defined in JavaProvider and are only used in that class. JavaProvider calls getServiceObject(org.apache.axis.MessageContext, org.apache.axis.Handler, java.lang.String, javax.xml.rpc.holders.IntHolder) and passes the object to RPCProvider.processMessage(org.apache.axis.MessageContext, org.apache.axis.message.SOAPEnvelope, org.apache.axis.message.SOAPEnvelope, java.lang.Object).

See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.apache.axis.providers.java.RPCProvider
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
ObjectRPCProvider(Object target)
          uses target.getClass as class.
ObjectRPCProvider(Object target, Class<?> cls)
           
 
Method Summary
protected  Class<?> getServiceClass(String clsName, org.apache.axis.handlers.soap.SOAPService service, org.apache.axis.MessageContext msgContext)
          called only from JavaProvider.initServiceDesc(org.apache.axis.handlers.soap.SOAPService, org.apache.axis.MessageContext), but we override that, so it's never called.
protected  String getServiceClassName(org.apache.axis.Handler service)
          called from JavaProvider.invoke(org.apache.axis.MessageContext), and from JavaProvider.initServiceDesc(org.apache.axis.handlers.soap.SOAPService, org.apache.axis.MessageContext) (but we override that here).
protected  String getServiceClassNameOptionName()
          called from JavaProvider.getServiceClassName(org.apache.axis.Handler) (but we override that here), and from JavaProvider.invoke(org.apache.axis.MessageContext) if getServiceClassName(org.apache.axis.Handler) returns null or "" (and that can't happen).
 Object getServiceObject(org.apache.axis.MessageContext msgContext, org.apache.axis.Handler service, String clsName, javax.xml.rpc.holders.IntHolder scopeHolder)
          called from JavaProvider.invoke(org.apache.axis.MessageContext)
 void initServiceDesc(org.apache.axis.handlers.soap.SOAPService service, org.apache.axis.MessageContext msgContext)
          Called from SOAPService.getInitializedServiceDesc(org.apache.axis.MessageContext), which in turn is called from many places.
 
Methods inherited from class org.apache.axis.providers.java.RPCProvider
checkMethodName, createResponseBody, getBody, getOperationDesc, invokeMethod, processMessage
 
Methods inherited from class org.apache.axis.providers.java.JavaProvider
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
 

Constructor Detail

ObjectRPCProvider

public ObjectRPCProvider(Object target)
uses target.getClass as class.

Parameters:
target -

ObjectRPCProvider

public ObjectRPCProvider(Object target,
                         Class<?> cls)
Parameters:
target -
cls - class used to find methods etc.
Method Detail

getServiceClass

protected Class<?> getServiceClass(String clsName,
                                   org.apache.axis.handlers.soap.SOAPService service,
                                   org.apache.axis.MessageContext msgContext)
called only from JavaProvider.initServiceDesc(org.apache.axis.handlers.soap.SOAPService, org.apache.axis.MessageContext), but we override that, so it's never called.

Overrides:
getServiceClass in class org.apache.axis.providers.java.JavaProvider
Parameters:
clsName -
service -
msgContext -
Returns:
class set in constructor.
See Also:
JavaProvider.getServiceClass(String, SOAPService, MessageContext)

getServiceClassName

protected String getServiceClassName(org.apache.axis.Handler service)
called from JavaProvider.invoke(org.apache.axis.MessageContext), and from JavaProvider.initServiceDesc(org.apache.axis.handlers.soap.SOAPService, org.apache.axis.MessageContext) (but we override that here).

Overrides:
getServiceClassName in class org.apache.axis.providers.java.JavaProvider
Parameters:
service -
Returns:
name of class set in constructor.
See Also:
JavaProvider.getServiceClassName(Handler)

getServiceClassNameOptionName

protected String getServiceClassNameOptionName()
called from JavaProvider.getServiceClassName(org.apache.axis.Handler) (but we override that here), and from JavaProvider.invoke(org.apache.axis.MessageContext) if getServiceClassName(org.apache.axis.Handler) returns null or "" (and that can't happen).

Overrides:
getServiceClassNameOptionName in class org.apache.axis.providers.java.JavaProvider
Returns:
null
See Also:
JavaProvider.getServiceClassNameOptionName()

getServiceObject

public Object getServiceObject(org.apache.axis.MessageContext msgContext,
                               org.apache.axis.Handler service,
                               String clsName,
                               javax.xml.rpc.holders.IntHolder scopeHolder)
called from JavaProvider.invoke(org.apache.axis.MessageContext)

Overrides:
getServiceObject in class org.apache.axis.providers.java.JavaProvider
Parameters:
msgContext - ignored
service - ignored
clsName - ignored
scopeHolder - we set the scope to Scope.APPLICATION
Returns:
target object set in constructor.
See Also:
JavaProvider.invoke(org.apache.axis.MessageContext)

initServiceDesc

public void initServiceDesc(org.apache.axis.handlers.soap.SOAPService service,
                            org.apache.axis.MessageContext msgContext)
Called from SOAPService.getInitializedServiceDesc(org.apache.axis.MessageContext), which in turn is called from many places. We do not strictly have to override the implementation in JavaProvider, but it's safer this way, because we must make sure that this method can be invoked with a null MessageContext. It is (indirectly) called with a null parameter in SoapReceiver.createService(). The current implementation of JavaProvider.initServiceDesc(org.apache.axis.handlers.soap.SOAPService, org.apache.axis.MessageContext) only passes on the parameter to JavaProvider.getServiceClass(java.lang.String, org.apache.axis.handlers.soap.SOAPService, org.apache.axis.MessageContext), which in our cases ignores it as well. The current implementation of JavaProvider.getServiceClass(java.lang.String, org.apache.axis.handlers.soap.SOAPService, org.apache.axis.MessageContext) explicitly tolerates a null value.

Overrides:
initServiceDesc in class org.apache.axis.providers.java.JavaProvider
Parameters:
service -
msgContext - ignored
See Also:
JavaProvider.initServiceDesc(org.apache.axis.handlers.soap.SOAPService, org.apache.axis.MessageContext), JavaProvider.getServiceClass(java.lang.String, org.apache.axis.handlers.soap.SOAPService, org.apache.axis.MessageContext), SoapReceiver.createService()


Copyright © 2004-2007 University of Troms?. All Rights Reserved.