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:
- 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 the RmiInvocationHandler
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 extend java.rmi.Remote
or declare java.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
Method Summary |
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 java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
RmiBasedExporter
public RmiBasedExporter()
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 class RemoteInvocationBasedExporter
- 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 resolved
IllegalAccessException
- if the method could not be accessed
InvocationTargetException
- if the method invocation resulted in an exception- See Also:
RemoteInvocationExecutor.invoke(org.springframework.remoting.support.RemoteInvocation, java.lang.Object)