@Deprecated public class RmiProxyFactoryBean extends RmiClientInterceptor implements org.springframework.beans.factory.FactoryBean<Object>, org.springframework.beans.factory.BeanClassLoaderAware
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, is serialization. Effectively, any serializable Java object can be transported without hassle. Hessian has its own (de-)serialization mechanisms, but is HTTP-based and thus much easier to setup than RMI. Alternatively, consider Spring's HTTP invoker to combine Java serialization with HTTP-based transport.
RemoteAccessor.setServiceInterface(java.lang.Class<?>)
,
UrlBasedRemoteAccessor.setServiceUrl(java.lang.String)
,
RmiClientInterceptor
,
RmiServiceExporter
,
Remote
,
RemoteException
,
RemoteAccessException
,
org.springframework.remoting.caucho.HessianProxyFactoryBean
,
org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean
logger
Constructor and Description |
---|
RmiProxyFactoryBean()
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
void |
afterPropertiesSet()
Deprecated.
|
Object |
getObject()
Deprecated.
|
Class<?> |
getObjectType()
Deprecated.
|
boolean |
isSingleton()
Deprecated.
|
doInvoke, doInvoke, getStub, invoke, isConnectFailure, lookupStub, prepare, refreshAndRetry, setCacheStub, setLookupStubOnStartup, setRefreshStubOnConnectFailure, setRegistryClientSocketFactory
createRemoteInvocation, getRemoteInvocationFactory, recreateRemoteInvocationResult, setRemoteInvocationFactory
getServiceUrl, setServiceUrl
getServiceInterface, setServiceInterface
getBeanClassLoader, overrideThreadContextClassLoader, resetThreadContextClassLoader, setBeanClassLoader
public void afterPropertiesSet()
afterPropertiesSet
in interface org.springframework.beans.factory.InitializingBean
afterPropertiesSet
in class RmiClientInterceptor
public Object getObject()
getObject
in interface org.springframework.beans.factory.FactoryBean<Object>
public Class<?> getObjectType()
getObjectType
in interface org.springframework.beans.factory.FactoryBean<Object>
public boolean isSingleton()
isSingleton
in interface org.springframework.beans.factory.FactoryBean<Object>