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 theRmiInvocationHandlerremote interface.Using the RMI invoker mechanism, RMI communication operates at the
RmiInvocationHandlerlevel, sharing a common invoker stub for any number of services. Service interfaces are not required to extendjava.rmi.Remoteor declarejava.rmi.RemoteExceptionon 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 RemotegetObjectToExport()Determine the object to export: either the service object itself or a RmiInvocationWrapper in case of a non-RMI service object.protected Objectinvoke(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:
invokein 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)