1

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

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

我的问题是,我可以在不重新编译存根的情况下进行哪些更改?

据我所知:

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

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

4

1 回答 1

2

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

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

于 2009-03-20T12:25:27.097 回答