关闭 RMI 服务器时调用函数

我正在开发一个具有许多服务器的 Java RMI 应用程序。其中一个服务器是类 LDAP 服务器,它跟踪其他服务器的 IP 地址(和其他一些信息):每次创建新服务器时,它都会立即连接到存储其 IP 的类 LDAP 服务器,方法是调用函数connectToLDAP():


ArrayList<ServerInfo> computingServers = new ArrayList<ServerInfo>();

/**

 * Adds a server to the LDAP to store its IP address

 */

@Override

public void connectToLDAP(int port, int q) throws RemoteException, Exception {

    computingServers.add(new ServerInfo(RemoteServer.getClientHost(), port, q));

}

这样,服务器只需要连接到类似 LDAP 的服务器即可获取所有服务器 IP 的列表。


我的问题如下:当我运行新服务器 X 并连接到类似 LDAP 的服务器,然后我使用 Eclipse“终止”或Ctrl + C在终端上使用停止运行 X 的进程时,服务器 X 如何调用在退出之前执行下面的功能,以便类 LDAP 的服务器保持最新?


/**

 * Removes a server from the LDAP

 */

@Override

public void removeServer(int port, int q) throws RemoteException, Exception {

    computingServers.remove(new ServerInfo(RemoteServer.getClientHost(), port, q));

}

我知道这不是最好的选择,但优化或遵循惯例不是我的重点。但是,如果有完全其他的方式来做我想做的事,我愿意接受建议。


哔哔one
浏览 89回答 1
1回答

小怪兽爱吃肉

最后,我添加了一个足以满足我对这个项目的需求的关闭挂钩。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java