0
我正在修改/现代化项目,它有一个小的RMI作品,不幸的是我从未与RMI合作过。如何停止RMI客户端?
我无法弄清楚的一件事是,为什么在我最初创建一个RMI客户端后,它一直调用它的自定义SocketFactory构造函数。看起来好像每隔5分钟就会发生一次,即使在客户端和服务器之间没有流量时,我也会看到构造函数被调用。
所以我想必须有某种方式来结束客户端或以某种方式清理它,所以它停止这样做,但我不知道它可能是什么。
它建立RMI连接,像这样:
UnicastRemoteObject.exportObject(this);
TheServer rmiServer = (TheServer)Naming.lookup(s); // where s is some rmi:// url
于是我可以访问服务器的方法,它可以叫我的客户端上的方法。
一旦我完成了连接,我应该怎么做才能清理并停止任何线程进行持久化?
我正在检查UnicastRemoteObject,也许我需要使用方法unexportObject?
但是,这个自定义的SocketFactory怎么会被调用呢,在我的项目中绝对没有对它的类名的引用,除非它在背景中通过从客户端的名称派生类名来找到它,东西...
似乎没有工作。我没有任何引用,我仍然看到被调用的socketfactory。 – Trant
多久?当存根被垃圾收集时它会停止。而且你没有别的办法可以做。 – EJP