Class RemoteExporter
- java.lang.Object
- org.springframework.remoting.support.RemotingSupport
- org.springframework.remoting.support.RemoteExporter
- All Implemented Interfaces:
Aware
,BeanClassLoaderAware
- Direct Known Subclasses:
BurlapExporter
,HessianExporter
,RemoteInvocationBasedExporter
public abstract class RemoteExporter extends RemotingSupport
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.
- Since:
- 26.12.2003
- Author:
- Juergen Hoeller
Field Summary
Fields inherited from class org.springframework.remoting.support.RemotingSupport
logger
Constructor Summary
Constructors Constructor Description RemoteExporter()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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 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.void
setInterceptors(Object[] interceptors)
Set additional interceptors (or advisors) to be applied before the remote endpoint, e.g.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 org.springframework.remoting.support.RemotingSupport
getBeanClassLoader, overrideThreadContextClassLoader, resetThreadContextClassLoader, setBeanClassLoader
Constructor Detail
RemoteExporter
public RemoteExporter()
Method Detail
setService
public void setService(Object service)
Set the service to export. Typically populated via a bean reference.
getService
public Object getService()
Return the service to export.
setServiceInterface
public void setServiceInterface(Class<?> serviceInterface)
Set the interface of the service to export. The interface must be suitable for the particular service and remoting strategy.
getServiceInterface
public Class<?> getServiceInterface()
Return the interface of the service to export.
setRegisterTraceInterceptor
public void setRegisterTraceInterceptor(boolean registerTraceInterceptor)
Set whether to register a RemoteInvocationTraceInterceptor for exported services. Only applied when a subclass usesgetProxyForService
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. Note that RemoteInvocationTraceInterceptor will not be registered by default if the "interceptors" property has been specified.
setInterceptors
public void setInterceptors(Object[] interceptors)
Set additional interceptors (or advisors) to be applied before the remote endpoint, e.g. a PerformanceMonitorInterceptor.You may specify any AOP Alliance MethodInterceptors or other Spring AOP Advices, as well as Spring AOP Advisors.
checkService
protected void checkService() throws IllegalArgumentException
Check whether the service reference has been set.- Throws:
IllegalArgumentException
- See Also:
setService(java.lang.Object)
checkServiceInterface
protected void checkServiceInterface() throws IllegalArgumentException
Check whether a service reference has been set, and whether it matches the specified service.
getProxyForService
protected Object getProxyForService()
Get a proxy for the given service object, implementing the specified service interface.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).- Returns:
- the proxy
- See Also:
setServiceInterface(java.lang.Class<?>)
,setRegisterTraceInterceptor(boolean)
,RemoteInvocationTraceInterceptor
getExporterName
protected String getExporterName()
Return a short name for this exporter. Used for tracing of remote invocations.Default is the unqualified class name (without package). Can be overridden in subclasses.