gpt4 book ai didi

java - RMI 对象未刷新

转载 作者:太空宇宙 更新时间:2023-11-04 07:11:10 26 4
gpt4 key购买 nike

我在我的项目中使用RMI,我们有一个RMI服务器和RMI客户端。客户端位于 Web 应用程序中,因此我们将服务器引用存储在公共(public)常量中。

我想知道,每次我们需要服务器实例时在注册表中查找服务器的成本是多少。或者最好查找一次并将其存储在某个常量中。

如果我将它存储在常量中,那么如果 RMI 服务器重新启动,问题就会开始。因为该常量变量保存旧引用,并且它抛出 java.rmi.NoSuchObjectException: no such object in table

欢迎任何意见。

最佳答案

如果您希望客户端应用程序能够承受所有服务器重新启动,那么无论如何您都应该保护它免受通信故障的影响,包括 java.rmi.NoSuchObjectException。请注意,尽管不太可能,但在查找和请求执行之间可能会发生服务器重新启动。在这种情况下,即使您在每个请求之前进行查找,也不会安全。所以建议如下:

  1. 查找一次并保留引用。这样做的另一个好处是您的应用程序将能够发现初始化时的错误配置或其他问题。

  2. 如果发生 NoSuchObjectException,请尝试刷新引用。

关于java - RMI 对象未刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20629466/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com