[java] Exemple de ré-implémentation de Jconsole

Exemple de ré-implémentation de Jconsole [java] - Java - Programmation

Marsh Posté le 02-04-2009 à 16:45:32    

Bonjour,
 
Voilà j'ai récemment créer un service java sous forme de MBeans pour pouvoir gérer les connections dessus (que j'arrive difficilement à faire aller, mais le problème n'est pas là).
 
Jusqu'à maintenant j'utilisais la JConsole pour me connecter et contrôler ce service/serveur. J'aimerai maintenant utiliser ma propre GUI Java pour contrôler ce service...
 
J'ai passé tout l'après-midi sur le package javax.management, sans rien réussir à en tirer. Je n'arrive pas à saisir le principe, ce qu'il faut faire pour pouvoir se connecter puis contrôler etc... Si quelqu'un réussissait à me montrer un exemple concret voir une explication précises, j'en serais soulagé :) !!
 
Merci d'avance.
 
voici le code de mes 3 classes contenue dans mon service

Code :
  1. package ServiceJVXTest;
  2. public class Main
  3. {
  4.     public static void main(String[] args) throws Exception {
  5.         // Get the Platform MBean Server
  6.         MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
  7.         // Construct the ObjectName for the MBean we will register
  8.         ObjectName name = new ObjectName("ServiceJVXTest:type=BackGroundService" );
  9.         // Create the Hello World MBean
  10.         BackGroundService mbean = new BackGroundService();
  11.         // Register the Hello World MBean
  12.         mbs.registerMBean(mbean, name);
  13.         Thread.sleep(Long.MAX_VALUE);
  14.     }
  15. }


 

Code :
  1. package ServiceJVXTest;
  2. public interface BackGroundServiceMBean
  3. {
  4.     // Methodes accessibles
  5.    
  6.     public void setText(String text);
  7.     public void setTime(int time);
  8.     public void ecrireFichier();
  9.     public void setFichier(String text);
  10.     // Méthodes pour la Jconsole
  11.     public String getName();
  12.     public int getCacheSize();
  13.     public void setCacheSize(int size);
  14. }


 

Code :
  1. package ServiceJVXTest;
  2. public class BackGroundService implements BackGroundServiceMBean
  3. {
  4.     private int time,i;
  5.     private boolean isTrue;
  6.     private String text;
  7.     private FileWriter fw;
  8.     private final String name = "BackGroundService";
  9.     private int cacheSize = DEFAULT_CACHE_SIZE;
  10.     private static final int DEFAULT_CACHE_SIZE = 200;
  11.     public BackGroundService()
  12.     {
  13.         try
  14.         {
  15.             this.fw = new FileWriter("C:\\fichierTest.txt" );
  16.             this.time=10000;
  17.             this.text="test";
  18.             this.i=0;
  19.             this.isTrue = true;
  20.         }
  21.         catch (IOException ex)
  22.         {
  23.             Logger.getLogger(BackGroundService.class.getName()).log(Level.SEVERE, null, ex);
  24.         }
  25.     }
  26.     public void setFichier(String text)
  27.     {
  28.         try
  29.         {
  30.             this.fw = new FileWriter(text);
  31.         }
  32.         catch (IOException ex)
  33.         {
  34.             Logger.getLogger(BackGroundService.class.getName()).log(Level.SEVERE, null, ex);
  35.         }
  36.     }
  37.     public void setText(String text)
  38.     {
  39.         this.text = text;
  40.     }
  41.     public String getText()
  42.     {
  43.         return this.text;
  44.     }
  45.    
  46.     public void setTime(int time)
  47.     {
  48.         this.time = time;
  49.     }
  50.     public int getTime()
  51.     {
  52.         return this.time;
  53.     }
  54.     public void ecrireFichier()
  55.     {
  56.         try
  57.         {           
  58.             try {
  59.                 i++;
  60.                 fw.write("On ecrit dans le fichier: "+text+" "+ i+" fois,"+ " tous les "+time/1000+" secondes.\n" );
  61.                 fw.flush();
  62.                
  63.             }
  64.             catch (IOException ex)
  65.             {             
  66.                 Logger.getLogger(BackGroundService.class.getName()).log(Level.SEVERE, null, ex);
  67.             }
  68.             Thread.sleep(time);
  69.         }
  70.         catch (InterruptedException ex)
  71.         {
  72.             Logger.getLogger(BackGroundService.class.getName()).log(Level.SEVERE, null, ex);
  73.         }
  74.     }
  75.     public String getName() {
  76.         return this.name;
  77.     }
  78.     public int getCacheSize() {
  79.         return this.getCacheSize();
  80.     }
  81.     public void setCacheSize(int size) {
  82.         this.cacheSize=size;
  83.         System.out.println("Cache Size is now : "+cacheSize);
  84.     }
  85. }


Message édité par Subgenk le 02-04-2009 à 17:24:24
Reply

Marsh Posté le 02-04-2009 à 16:45:32   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed