【发布时间】:2012-07-07 04:48:21
【问题描述】:
任何与 RMI 打交道的人肯定会遇到这样的两难境地:如何轻松地维护对象接口,为其他客户端应用程序提供远程方法调用服务。每当我们决定对接口中声明的方法声明或添加/删除方法进行细微更改时,我们必须手动复制所有将使用该接口从远程服务器访问 RMI 服务的客户端中的更改。
【问题讨论】:
任何与 RMI 打交道的人肯定会遇到这样的两难境地:如何轻松地维护对象接口,为其他客户端应用程序提供远程方法调用服务。每当我们决定对接口中声明的方法声明或添加/删除方法进行细微更改时,我们必须手动复制所有将使用该接口从远程服务器访问 RMI 服务的客户端中的更改。
【问题讨论】:
考虑拥有一个可下载(Serializable)代理,该代理具有客户端使用的更稳定的接口,并使用远程接口完成其工作。您可以使用代码库功能来确保其对所有客户端的可用性。代理需要包含存根。您可以将代理绑定到注册表,或从其他远程方法返回。
或者,使用 JWS 分发新版本的客户端。
或者,更稳定地设计您的远程接口,这样它们就不必更改 -:)
【讨论】:
我想出的一个很好的解决方法是
这将简化维护 RMI 接口的任务,只需在一个地方更新它们。在某些接口中更改方法签名的额外工作将仅限于更改调用该方法的应用程序代码。
【讨论】: