Package org.springframework.remoting.rmi
Class RmiBasedExporter
- java.lang.Object
- org.springframework.remoting.support.RemotingSupport
- org.springframework.remoting.support.RemoteExporter
- org.springframework.remoting.support.RemoteInvocationBasedExporter
- org.springframework.remoting.rmi.RmiBasedExporter
- All Implemented Interfaces:
Aware
,BeanClassLoaderAware
- Direct Known Subclasses:
JndiRmiServiceExporter
,RmiServiceExporter
public abstract class RmiBasedExporter extends RemoteInvocationBasedExporter
Convenient superclass for RMI-based remote exporters. Provides a facility to automatically wrap a given plain Java service object with an RmiInvocationWrapper, exposing theRmiInvocationHandler
remote interface.Using the RMI invoker mechanism, RMI communication operates at the
RmiInvocationHandler
level, sharing a common invoker stub for any number of services. Service interfaces are not required to extendjava.rmi.Remote
or declarejava.rmi.RemoteException
on all service methods. However, in and out parameters still have to be serializable.- Since:
- 1.2.5
- Author:
- Juergen Hoeller
- See Also:
RmiServiceExporter
,JndiRmiServiceExporter
Field Summary
Fields inherited from class org.springframework.remoting.support.RemotingSupport
logger
Constructor Summary
Constructors Constructor Description RmiBasedExporter()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Remote
getObjectToExport()
Determine the object to export: either the service object itself or a RmiInvocationWrapper in case of a non-RMI service object.protected Object
invoke(RemoteInvocation invocation, Object targetObject)
Redefined here to be visible to RmiInvocationWrapper.Methods inherited from class org.springframework.remoting.support.RemoteInvocationBasedExporter
getRemoteInvocationExecutor, invokeAndCreateResult, setRemoteInvocationExecutor
Methods inherited from class org.springframework.remoting.support.RemoteExporter
checkService, checkServiceInterface, getExporterName, getProxyForService, getService, getServiceInterface, setInterceptors, setRegisterTraceInterceptor, setService, setServiceInterface
Methods inherited from class org.springframework.remoting.support.RemotingSupport
getBeanClassLoader, overrideThreadContextClassLoader, resetThreadContextClassLoader, setBeanClassLoader
Constructor Detail
RmiBasedExporter
public RmiBasedExporter()
Method Detail
getObjectToExport
protected Remote getObjectToExport()
Determine the object to export: either the service object itself or a RmiInvocationWrapper in case of a non-RMI service object.- Returns:
- the RMI object to export
- See Also:
RemoteExporter.setService(java.lang.Object)
,RemoteExporter.setServiceInterface(java.lang.Class<?>)
invoke
protected Object invoke(RemoteInvocation invocation, Object targetObject) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException
Redefined here to be visible to RmiInvocationWrapper. Simply delegates to the corresponding superclass method.- Overrides:
invoke
in classRemoteInvocationBasedExporter
- Parameters:
invocation
- the remote invocationtargetObject
- the target object to apply the invocation to- Returns:
- the invocation result
- Throws:
NoSuchMethodException
- if the method name could not be resolvedIllegalAccessException
- if the method could not be accessedInvocationTargetException
- if the method invocation resulted in an exception- See Also:
RemoteInvocationExecutor.invoke(org.springframework.remoting.support.RemoteInvocation, java.lang.Object)