rmi服务端部署在Linux上现在纠结的问题是,服务端开启之后,一段时间正常,客户端也可以调用到远程方法但是过一段时间,也不知道是什么原因客户端再访问就会出现异常了,rmi所有远程方法都不能用了!异常信息:java.rmi.NoSuchObjectException: no such object in table悲剧!!!上网找了很多,有说改 etc/hosts 的,试了好像也没有用看了一篇外文资料, 在想是不是 java虚拟机垃圾回收掉了rmi的绑定对象 ,英文不够好,没能深入了解一下
http://stackoverflow.com/questions/645208/java-rmi-nosuchobjectexception-no-such-object-in-table总之问题就是,rmi开始的时候是可以用的,一段时间之后突然就调用不了了求高手解答,分数再追加

解决方案 »

  1.   

    以前是有被回收的问题,在某个版本的jdk后就修复了这个问题的解决方案只要在Naming.bind/rebind方法传入的参数是个static类变量就可以解决不要Naming.rebind(new SerxxxImpl());  不要在这里new
      

  2.   

    嗯,仔细研究了下那篇文章,说的也是被回收的问题。然后看了下自己写的服务端的代码,绑定的对象的确是在方法内部创建的,也的确会被回收。。现在也是改为类变量,而且声明为 static 了谢谢!