我正在研究Java RMI。我在端口2028上运行rmiregistry几乎没有问题,因为我已经使用它运行了我的测试程序。我可以使用其他端口运行程序,但我想知道,如何关闭在特定端口上运行的rmiregistry?
如果您想在编程中做到这一点,我们可以做以下事情:
// 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客户端/服务包中使用此代码。