一尘不染

如何关闭在特定端口上运行的rmiregistry?

linux

我正在研究Java
RMI。我在端口2028上运行rmiregistry几乎没有问题,因为我已经使用它运行了我的测试程序。我可以使用其他端口运行程序,但我想知道,如何关闭在特定端口上运行的rmiregistry?


阅读 563

收藏
2020-06-03

共1个答案

一尘不染

如果您想在编程中做到这一点,我们可以做以下事情:

// create the registry
Registry rmiRegistry = LocateRegistry.createRegistry(port);
...
// connect to it
JMXConnectorServer connector =
    JMXConnectorServerFactory.newJMXConnectorServer(url,
        new HashMap<String, Object>(),
        ManagementFactory.getPlatformMBeanServer());
// do stuff with it ...

// close the connection
if (connector != null) {
    connector.stop();
}
// deregister the registry
if (rmiRegistry != null) {
    UnicastRemoteObject.unexportObject(rmiRegistry, true);
}

这是我们的JMXServer类完整代码。我们在创建其中两个并完全注销它们时遇到了问题,因此我们确保在不同的端口上运行单元测试。

我在SimpleJmx JMX客户端/服务包中使用此代码。

2020-06-03