gpt4 book ai didi

java - 如何停止 RMI 客户端?

转载 作者:行者123 更新时间:2023-12-01 14:53:47 24 4
gpt4 key购买 nike

我正在开发一个正在改造/现代化的项目,其中有一个小的 RMI 部分,不幸的是我以前从未使用过 RMI。

我无法弄清楚的一件事是,为什么在我最初创建 RMI 客户端后它不断调用其自定义 SocketFactory 构造函数。即使客户端和服务器之间没有流量,我似乎每隔 5 分钟就会看到调用构造函数的输出。

所以我想一定有某种方法可以结束客户端或以某种方式清理它,以便它停止这样做,但我不知道它可能是什么。

它像这样设置 RMI 连接:

UnicastRemoteObject.exportObject(this);
TheServer rmiServer = (TheServer)Naming.lookup(s); // where s is some rmi:// url

这样我就可以访问服务器的方法,并且它可以调用我的客户端上的方法。

完成连接后,我应该如何清理并停止任何线程以进行持久化?

我正在查看 UnicastRemoteObject,也许我需要使用 unexportObject 方法?

但是这个自定义的 SocketFactory 是如何被调用的,在我的项目中绝对没有对其类名的引用,除非它在后台有一些反射,通过从客户端的名称或其他名称派生类名来找到它...

最佳答案

您正在看到分布式垃圾收集的效果。如果您完成了 stub ,只需释放所有本地引用并让它在本地进行垃圾收集。然后 DGC 也将停止,以及该远程对象的所有网络 Activity 。

关于java - 如何停止 RMI 客户端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14515404/

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