axis.dynamic
Class ObjectRPCProvider
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
axis.dynamic.ObjectRPCProvider
- All Implemented Interfaces:
- Serializable, org.apache.axis.Handler
public class ObjectRPCProvider
- extends org.apache.axis.providers.java.RPCProvider
Variant of the JavaProvider
s, 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
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 |
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 |
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.
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
- ignoredservice
- ignoredclsName
- ignoredscopeHolder
- 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.