如果远程服务器被重启了以后、client一端也需要重新启动
否则会报错
org.springframework.remoting.RemoteConnectFailureException: Could not connect to remote service [rmi://127.0.0.1:1099/rmiService2]; nested exception is java.rmi.NoSuchObjectException: no such object in table
org.springframework.remoting.rmi.RmiClientInterceptorUtils.convertRmiAccessException(RmiClientInterceptorUtils.java:150)
org.springframework.remoting.rmi.RmiClientInterceptor.doInvoke(RmiClientInterceptor.java:348)
org.springframework.remoting.rmi.RmiClientInterceptor.invoke(RmiClientInterceptor.java:260)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
还有一种办法 可以从根本是解决
RmiProxyFactoryBean factory= new RmiProxyFactoryBean();
factory.setServiceInterface(IService. class );
factory.setServiceUrl(url);
//解决重启 rmi 的服务器后会出现拒绝连接或找不到服务对象的错误
factory.setLookupStubOnStartup(false);//不在容器启动的时候创建与Server端的连接
factory.setRefreshStubOnConnectFailure(true);//表示是否连接出错时自动重连
factory.afterPropertiesSet();
IService service=( IService)factory.getObject();