RMI:什么变化需要重新编译 impl 类

发布于 2024-07-14 22:22:24 字数 412 浏览 4 评论 0原文

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

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

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

据我所知:

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

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

I have two application which communicates by using RMI objects.
I do have an interface, an implementation class and the generated stub class.

I recognized, that some changes in the impl class take me to create a new stub class.

My question is, what changes i can make without re-compiling the stub again?

As far as What i know:

  • I can not change the method structure
    (add,remove,change methods)
  • Can i add serialVersionUID to classes
    the impl class is using?
  • Can i change classes the impl class is
    using?
  • Can i document the impl and all used classes?

I ask this question, because i did a change at the beginning of this week and now, the RMI connection is broken. But i only add comments and updated my checkstyle. So i add serial version UIDs and changed some classes to be final.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

泪之魂 2024-07-21 22:22:24

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

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

You only need to rerun rmic and generate your deployment classes if you change any method signature, including adding and deleting. The generated code simply links a remote invocation object to the actual implementation via the defined methods for the class.

This means you can change the impl code (except method signatures) and the code of any class used by the impl class without issue. If those classes used by the implementation are also part of your method signature, then proper versions will be required on the client side to match the remote implementation, but this is nothing RMI specific.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文