日期:2014-05-20  浏览次数:20626 次

急!高分求解!java rmi 问题 !no such object in table
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开始的时候是可以用的,一段时间之后突然就调用不了了

求高手解答,分数再追加。。。

------解决方案--------------------
以前是有被回收的问题,在某个版本的jdk后就修复了

这个问题的解决方案只要在Naming.bind/rebind方法传入的参数是个static类变量就可以解决

不要Naming.rebind(new SerxxxImpl()); 不要在这里new