|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.springframework.remoting.support.RemoteAccessor org.springframework.remoting.support.UrlBasedRemoteAccessor org.springframework.remoting.rmi.RmiClientInterceptor
Interceptor for accessing conventional RMI services or RMI invokers. The service URL must be a valid RMI URL like "rmi://localhost:1099/myservice".
RMI invokers work at the RmiInvocationHandler level, needing only one stub for any service. Service interfaces do not have to extend java.rmi.Remote or throw RemoteException; Spring's unchecked RemoteAccessException will be thrown on remote invocation failure. Of course, in and out parameters have to be serializable.
With conventional RMI services, this invoker is typically used with the RMI service interface. Alternatively, this invoker can also proxy a remote RMI service with a matching non-RMI business interface, i.e. an interface that mirrors the RMI service methods but does not declare RemoteExceptions. In the latter case, RemoteExceptions thrown by the RMI stub will automatically get converted to Spring's unchecked RemoteAccessException.
RmiServiceExporter
,
RmiInvocationHandler
,
RemoteAccessException
,
RemoteException
,
Remote
Field Summary |
Fields inherited from class org.springframework.remoting.support.RemoteAccessor |
logger |
Constructor Summary | |
RmiClientInterceptor()
|
Method Summary | |
void |
afterPropertiesSet()
Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware). |
protected java.rmi.Remote |
createRmiProxy()
Create the RMI proxy. |
protected java.rmi.Remote |
getRmiProxy()
Return the underlying RMI proxy that this interceptor delegates to. |
java.lang.Object |
invoke(org.aopalliance.intercept.MethodInvocation invocation)
|
protected java.lang.Object |
invoke(org.aopalliance.intercept.MethodInvocation methodInvocation,
RmiInvocationHandler invocationHandler)
Apply the given AOP method invocation to the given RmiInvocationHandler. |
Methods inherited from class org.springframework.remoting.support.UrlBasedRemoteAccessor |
getServiceUrl, setServiceUrl |
Methods inherited from class org.springframework.remoting.support.RemoteAccessor |
getServiceInterface, setServiceInterface |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public RmiClientInterceptor()
Method Detail |
public void afterPropertiesSet() throws java.lang.Exception
InitializingBean
This method allows the bean instance to perform initialization only possible when all bean properties have been set and to throw an exception in the event of misconfiguration.
afterPropertiesSet
in interface InitializingBean
java.lang.Exception
- in the event of misconfiguration (such
as failure to set an essential property) or if initialization fails.protected java.rmi.Remote createRmiProxy() throws java.lang.Exception
java.lang.Exception
Naming.lookup(java.lang.String)
protected java.rmi.Remote getRmiProxy()
public java.lang.Object invoke(org.aopalliance.intercept.MethodInvocation invocation) throws java.lang.Throwable
invoke
in interface org.aopalliance.intercept.MethodInterceptor
java.lang.Throwable
protected java.lang.Object invoke(org.aopalliance.intercept.MethodInvocation methodInvocation, RmiInvocationHandler invocationHandler) throws java.rmi.RemoteException, java.lang.NoSuchMethodException, java.lang.IllegalAccessException, java.lang.reflect.InvocationTargetException
Can be overridden in subclasses to provide custom RemoteInvocation subclasses, containing additional invocation parameters like user credentials. Can also process the returned result object.
methodInvocation
- the current AOP method invocationinvocationHandler
- the RmiInvocationHandler to apply the invocation to
java.lang.NoSuchMethodException
- if the method name could not be resolved
java.lang.IllegalAccessException
- if the method could not be accessed
java.lang.reflect.InvocationTargetException
- if the method invocation resulted in an exception
java.rmi.RemoteException
RemoteInvocation
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |