Pokud to chcete udělat v programování, uděláme něco jako:
// 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);
}
Zde je úplný kód pro naši třídu JMXServer. Máme problémy s vytvořením 2 z nich a jejich úplným zrušením registrace, takže jsme se ujistili, že naše testy jednotek spouštíme na různých portech.
Tento kód používám ve svém balíčku klienta/služby SimpleJmx JMX.
Po tolika potížích si najednou uvědomím, že rmiregistry běží na pozadí shellu. Takže vše, co musíme udělat, jej zavřít, nejprve uvést do popředí a pak zavřít. A fungovalo to.
BTW, abyste to dostali do popředí, stačí napsat:
% fg
a pro zavření zadejte:
Ctrl + c
A je to. Děkuji moc všem, kteří se mi snažili pomoci.