Si vous voulez faire cela en programmation, nous faisons quelque chose comme :
// 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);
}
Voici le code complet de notre classe JMXServer. Nous avons des problèmes pour en créer 2 et les désinscrire complètement, nous nous assurons donc d'exécuter nos tests unitaires sur différents ports.
J'utilise ce code dans mon package client/service SimpleJmx JMX.
Après tant de tracas, je réalise soudainement que rmiregistry s'exécute en arrière-plan du shell. Donc, tout ce que nous avons à faire, c'est de le fermer, d'abord de le mettre au premier plan, puis de le fermer. Et ça a marché.
BTW pour le mettre au premier plan, tapez simplement :
% fg
puis pour le fermer tapez :
Ctrl + c
C'est ça. Merci beaucoup à tous ceux qui ont essayé de m'aider.