Class RemoteInvocationBasedAccessor
- java.lang.Object
- org.springframework.remoting.support.RemotingSupport
- org.springframework.remoting.support.RemoteAccessor
- org.springframework.remoting.support.UrlBasedRemoteAccessor
- org.springframework.remoting.support.RemoteInvocationBasedAccessor
- All Implemented Interfaces:
Aware
,BeanClassLoaderAware
,InitializingBean
- Direct Known Subclasses:
HttpInvokerClientInterceptor
,RmiClientInterceptor
public abstract class RemoteInvocationBasedAccessor extends UrlBasedRemoteAccessor
Abstract base class for remote service accessors that are based on serialization ofRemoteInvocation
objects. Provides a "remoteInvocationFactory" property, with aDefaultRemoteInvocationFactory
as default strategy.- Since:
- 1.1
- Author:
- Juergen Hoeller
- See Also:
setRemoteInvocationFactory(org.springframework.remoting.support.RemoteInvocationFactory)
,RemoteInvocation
,RemoteInvocationFactory
,DefaultRemoteInvocationFactory
Field Summary
Fields inherited from class org.springframework.remoting.support.RemotingSupport
logger
Constructor Summary
Constructors Constructor Description RemoteInvocationBasedAccessor()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected RemoteInvocation
createRemoteInvocation(MethodInvocation methodInvocation)
Create a new RemoteInvocation object for the given AOP method invocation.RemoteInvocationFactory
getRemoteInvocationFactory()
Return the RemoteInvocationFactory used by this accessor.protected Object
recreateRemoteInvocationResult(RemoteInvocationResult result)
Recreate the invocation result contained in the given RemoteInvocationResult object.void
setRemoteInvocationFactory(RemoteInvocationFactory remoteInvocationFactory)
Set the RemoteInvocationFactory to use for this accessor.Methods inherited from class org.springframework.remoting.support.UrlBasedRemoteAccessor
afterPropertiesSet, getServiceUrl, setServiceUrl
Methods inherited from class org.springframework.remoting.support.RemoteAccessor
getServiceInterface, setServiceInterface
Methods inherited from class org.springframework.remoting.support.RemotingSupport
getBeanClassLoader, overrideThreadContextClassLoader, resetThreadContextClassLoader, setBeanClassLoader
Constructor Detail
RemoteInvocationBasedAccessor
public RemoteInvocationBasedAccessor()
Method Detail
setRemoteInvocationFactory
public void setRemoteInvocationFactory(RemoteInvocationFactory remoteInvocationFactory)
Set the RemoteInvocationFactory to use for this accessor. Default is aDefaultRemoteInvocationFactory
.A custom invocation factory can add further context information to the invocation, for example user credentials.
getRemoteInvocationFactory
public RemoteInvocationFactory getRemoteInvocationFactory()
Return the RemoteInvocationFactory used by this accessor.
createRemoteInvocation
protected RemoteInvocation createRemoteInvocation(MethodInvocation methodInvocation)
Create a new RemoteInvocation object for the given AOP method invocation.The default implementation delegates to the configured
RemoteInvocationFactory
. This can be overridden in subclasses in order to provide custom RemoteInvocation subclasses, containing additional invocation parameters (e.g. user credentials).Note that it is preferable to build a custom RemoteInvocationFactory as a reusable strategy, instead of overriding this method.
- Parameters:
methodInvocation
- the current AOP method invocation- Returns:
- the RemoteInvocation object
- See Also:
RemoteInvocationFactory.createRemoteInvocation(org.aopalliance.intercept.MethodInvocation)
recreateRemoteInvocationResult
protected Object recreateRemoteInvocationResult(RemoteInvocationResult result) throws Throwable
Recreate the invocation result contained in the given RemoteInvocationResult object.The default implementation calls the default
recreate()
method. This can be overridden in subclass to provide custom recreation, potentially processing the returned result object.- Parameters:
result
- the RemoteInvocationResult to recreate- Returns:
- a return value if the invocation result is a successful return
- Throws:
Throwable
- if the invocation result is an exception- See Also:
RemoteInvocationResult.recreate()