急!高分求解!java rmi 问题 !no such object in table

sharkdoodoo 2011-10-26 01:38:14
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开始的时候是可以用的,一段时间之后突然就调用不了了

求高手解答,分数再追加。。。
...全文
1195 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
sharkdoodoo 2011-10-30
  • 打赏
  • 举报
回复
嗯,仔细研究了下那篇文章,说的也是被回收的问题。

然后看了下自己写的服务端的代码,绑定的对象的确是在方法内部创建的,也的确会被回收。。

现在也是改为类变量,而且声明为 static 了

谢谢!
龙四 2011-10-26
  • 打赏
  • 举报
回复
以前是有被回收的问题,在某个版本的jdk后就修复了

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

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

62,622

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧