| FactoryBean for RMI proxies, supporting both conventional RMI services and
RMI invokers. Exposes the proxied service for use as a bean reference,
using the specified service interface. Proxies will throw Spring's unchecked
RemoteAccessException on remote invocation failure instead of RMI's RemoteException.
The service URL must be a valid RMI URL like "rmi://localhost:1099/myservice".
RMI invokers work at the RmiInvocationHandler level, using the same invoker stub
for any service. Service interfaces do not have to extend java.rmi.Remote
or throw java.rmi.RemoteException . Of course, in and out parameters
have to be serializable.
With conventional RMI services, this proxy factory is typically used with the
RMI service interface. Alternatively, this factory 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.
The major advantage of RMI, compared to Hessian and Burlap, is serialization.
Effectively, any serializable Java object can be transported without hassle.
Hessian and Burlap have their own (de-)serialization mechanisms, but are
HTTP-based and thus much easier to setup than RMI. Alternatively, consider
Spring's HTTP invoker to combine Java serialization with HTTP-based transport.
author: Juergen Hoeller since: 13.05.2003 See Also: RmiProxyFactoryBean.setServiceInterface See Also: RmiProxyFactoryBean.setServiceUrl See Also: RmiClientInterceptor See Also: RmiServiceExporter See Also: java.rmi.Remote See Also: java.rmi.RemoteException See Also: org.springframework.remoting.RemoteAccessException See Also: org.springframework.remoting.caucho.HessianProxyFactoryBean See Also: org.springframework.remoting.caucho.BurlapProxyFactoryBean See Also: org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean |