|
The Spring Framework | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.remoting.support.RemoteExporter
public abstract class RemoteExporter
Abstract base class for classes that export a remote service. Provides "service" and "serviceInterface" bean properties.
Note that the service interface being used will show some signs of remotability, like the granularity of method calls that it offers. Furthermore, it has to have serializable arguments etc.
Field Summary | |
---|---|
protected Log |
logger
Logger available to subclasses |
Constructor Summary | |
---|---|
RemoteExporter()
|
Method Summary | |
---|---|
protected void |
checkService()
Check whether the service reference has been set. |
protected void |
checkServiceInterface()
Check whether a service reference has been set, and whether it matches the specified service. |
protected ClassLoader |
getBeanClassLoader()
Return the environment's bean ClassLoader, if available. |
protected String |
getExporterName()
Return a short name for this exporter. |
protected Object |
getProxyForService()
Get a proxy for the given service object, implementing the specified service interface. |
Object |
getService()
Return the service to export. |
Class |
getServiceInterface()
Return the interface of the service to export. |
protected boolean |
isRegisterTraceInterceptor()
Return whether to register a RemoteInvocationTraceInterceptor for exported services. |
protected ClassLoader |
overrideThreadContextClassLoader()
Override the thread context ClassLoader with the environment's bean ClassLoader if necessary, i.e. if the bean ClassLoader is not equivalent to the thread context ClassLoader already. |
protected void |
resetThreadContextClassLoader(ClassLoader original)
Reset the original thread context ClassLoader if necessary. |
void |
setBeanClassLoader(ClassLoader classLoader)
Callback that supplies the bean class loader to
a bean instance. |
void |
setRegisterTraceInterceptor(boolean registerTraceInterceptor)
Set whether to register a RemoteInvocationTraceInterceptor for exported services. |
void |
setService(Object service)
Set the service to export. |
void |
setServiceInterface(Class serviceInterface)
Set the interface of the service to export. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected final Log logger
Constructor Detail |
---|
public RemoteExporter()
Method Detail |
---|
public void setService(Object service)
public Object getService()
public void setServiceInterface(Class serviceInterface)
public Class getServiceInterface()
public void setRegisterTraceInterceptor(boolean registerTraceInterceptor)
getProxyForService
for creating the proxy to expose.
Default is "true". RemoteInvocationTraceInterceptor's most important value is that it logs exception stacktraces on the server, before propagating an exception to the client.
getProxyForService()
,
RemoteInvocationTraceInterceptor
protected boolean isRegisterTraceInterceptor()
public void setBeanClassLoader(ClassLoader classLoader)
BeanClassLoaderAware
class loader
to
a bean instance.
Invoked after the population of normal bean properties but
before an initialization callback such as
InitializingBean's
InitializingBean.afterPropertiesSet()
method or a custom init-method.
setBeanClassLoader
in interface BeanClassLoaderAware
classLoader
- the owning class loader; may be null
in
which case a default ClassLoader
must be used, for example
the ClassLoader
obtained via
ClassUtils.getDefaultClassLoader()
protected ClassLoader getBeanClassLoader()
protected void checkService() throws IllegalArgumentException
IllegalArgumentException
setService(java.lang.Object)
protected void checkServiceInterface() throws IllegalArgumentException
IllegalArgumentException
setServiceInterface(java.lang.Class)
,
setService(java.lang.Object)
protected Object getProxyForService()
Used to export a proxy that does not expose any internals but just
a specific interface intended for remote access. Furthermore, a
RemoteInvocationTraceInterceptor
will be registered (by default).
setServiceInterface(java.lang.Class)
,
setRegisterTraceInterceptor(boolean)
,
RemoteInvocationTraceInterceptor
protected String getExporterName()
Default is the unqualified class name (without package). Can be overridden in subclasses.
getProxyForService()
,
RemoteInvocationTraceInterceptor
,
ClassUtils.getShortName(java.lang.String)
protected ClassLoader overrideThreadContextClassLoader()
null
if not overriddenprotected void resetThreadContextClassLoader(ClassLoader original)
original
- the original thread context ClassLoader,
or null
if not overridden (and hence nothing to reset)
|
The Spring Framework | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |