0

任何与 RMI 打交道的人肯定会遇到这种困境,即如何轻松地维护对象接口,从而为其他客户端应用程序提供远程方法调用服务。每当我们决定对接口中声明的方法声明或添加/删除方法进行微小更改时,我们必须手动复制所有将使用该接口从远程服务器访问 RMI 服务的客户端中的更改。

4

2 回答 2

1

考虑拥有一个可下载(Serializable)代理,该代理具有客户端使用的更稳定的接口,并使用远程接口完成其工作。您可以使用代码库功能来确保其对所有客户端的可用性。代理需要包含存根。您可以将代理绑定到注册表,或从其他远程方法返回它。

或者,使用 JWS 分发新版本的客户端。

或者,更稳定地设计您的远程接口,这样它们就不必更改 -:)

于 2012-07-07T07:47:30.620 回答
0

我想出的一个很好的解决方法是

  1. 将 RMI 服务器提供的所有接口放在一个单独的项目中,该项目将在构建时将自身打包到一个 jar 文件中。
  2. 然后只需将该 jar 文件添加为依赖项或添加到服务器应用程序的类路径中,这旨在提供 RMI 服务以及任何想要使用这些接口来调用远程方法的客户端应用程序。

这将通过在一个地方更新它们来简化维护 RMI 接口的任务。在某些接口中更改方法签名的额外工作将仅限于更改调用该方法的应用程序代码。

于 2012-07-07T04:48:23.737 回答