RMI:重新编译的impl类需要进行哪些更改

时间:2009-03-20 07:49:38

标签: java structure rmi

我有两个使用RMI对象进行通信的应用程序。 我有一个接口,一个实现类和生成的存根类。

我认识到,impl类中的一些更改需要我创建一个新的存根类。

我的问题是,如果不重新编译存根,我可以做些什么改变?

据我所知:

  • 我无法改变方法结构 (添加,删除,更改方法)
  • 我可以将serialVersionUID添加到类中吗? impl类正在使用?
  • 我可以更改impl类的类吗? 使用?
  • 我可以记录impl和所有使用过的类吗?

我问这个问题,因为我在本周初进行了更改,现在,RMI连接已断开。但我只添加评论并更新我的checkstyle。所以我添加了串行版UID并将一些类改为最终版。

1 个答案:

答案 0 :(得分:2)

如果更改任何方法签名(包括添加和删除),则只需重新运行rmic并生成部署类。生成的代码只是通过定义的类方法将远程调用对象链接到实际的实现。

这意味着您可以更改impl代码(方法签名除外)和impl类使用的任何类的代码而不会出现问题。如果实现使用的那些类也是方法签名的一部分,那么客户端需要适当的版本来匹配远程实现,但这不是RMI特有的。