Class RemoteInvocationBasedExporter
- java.lang.Object
- org.springframework.remoting.support.RemotingSupport
- org.springframework.remoting.support.RemoteExporter
- org.springframework.remoting.support.RemoteInvocationBasedExporter
- All Implemented Interfaces:
Aware
,BeanClassLoaderAware
- Direct Known Subclasses:
JmsInvokerServiceExporter
,RemoteInvocationSerializingExporter
,RmiBasedExporter
public abstract class RemoteInvocationBasedExporter extends RemoteExporter
Abstract base class for remote service exporters that are based on deserialization ofRemoteInvocation
objects.Provides a "remoteInvocationExecutor" property, with a
DefaultRemoteInvocationExecutor
as default strategy.- Since:
- 1.1
- Author:
- Juergen Hoeller
- See Also:
RemoteInvocationExecutor
,DefaultRemoteInvocationExecutor
Field Summary
Fields inherited from class org.springframework.remoting.support.RemotingSupport
logger
Constructor Summary
Constructors Constructor Description RemoteInvocationBasedExporter()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RemoteInvocationExecutor
getRemoteInvocationExecutor()
Return the RemoteInvocationExecutor used by this exporter.protected Object
invoke(RemoteInvocation invocation, Object targetObject)
Apply the given remote invocation to the given target object.protected RemoteInvocationResult
invokeAndCreateResult(RemoteInvocation invocation, Object targetObject)
Apply the given remote invocation to the given target object, wrapping the invocation result in a serializable RemoteInvocationResult object.void
setRemoteInvocationExecutor(RemoteInvocationExecutor remoteInvocationExecutor)
Set the RemoteInvocationExecutor to use for this exporter.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
RemoteInvocationBasedExporter
public RemoteInvocationBasedExporter()
Method Detail
setRemoteInvocationExecutor
public void setRemoteInvocationExecutor(RemoteInvocationExecutor remoteInvocationExecutor)
Set the RemoteInvocationExecutor to use for this exporter. Default is a DefaultRemoteInvocationExecutor.A custom invocation executor can extract further context information from the invocation, for example user credentials.
getRemoteInvocationExecutor
public RemoteInvocationExecutor getRemoteInvocationExecutor()
Return the RemoteInvocationExecutor used by this exporter.
invoke
protected Object invoke(RemoteInvocation invocation, Object targetObject) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException
Apply the given remote invocation to the given target object. The default implementation delegates to the RemoteInvocationExecutor.Can be overridden in subclasses for custom invocation behavior, possibly for applying additional invocation parameters from a custom RemoteInvocation subclass. Note that it is preferable to use a custom RemoteInvocationExecutor which is a reusable strategy.
- 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)
invokeAndCreateResult
protected RemoteInvocationResult invokeAndCreateResult(RemoteInvocation invocation, Object targetObject)
Apply the given remote invocation to the given target object, wrapping the invocation result in a serializable RemoteInvocationResult object. The default implementation creates a plain RemoteInvocationResult.Can be overridden in subclasses for custom invocation behavior, for example to return additional context information. Note that this is not covered by the RemoteInvocationExecutor strategy!
- Parameters:
invocation
- the remote invocationtargetObject
- the target object to apply the invocation to- Returns:
- the invocation result
- See Also:
invoke(org.springframework.remoting.support.RemoteInvocation, java.lang.Object)