Bonjour tout le monde !
Alors j'ai un petit soucis concernant l'ouverture d'une JFrame. J'ai recherché longuement sur le net (Developpez.com et autres), mais je n'arrive vraiment pas à trouver de solution...
J'explique donc la situation :
Je dois développer une application qui doit récupérer des informations de suivi d'application tout en respectant de nouvelles normes de sécurité. Pour cela j'utilise JMX qui permet le monitoring, et VisualVM pour consulter ces informations.
J'arrive donc à me connecter sans problèmes (depuis peu ^^) à JMX depuis VisualVM.
Il y a donc dans VisualVM un plugin permettant de récupérer les informations sur les MBean, dont celles sur les méthodes (onglet Opérations dans le plugin).
Cela permet entre autres d'arrêter un service ou de créer un évènement.
Mon problème vient alors lorsque j'essaie d'afficher un résultat de statistiques.
En fait, je dois afficher, lors du clic sur un bouton de la liste des méthodes dans l'onglet "Opérations", une fenêtre avec un tableau en HTML (titres, couleurs et tout le tralala).
Pour cela j'utilise une JFrame :
Que j'appelle dans ma méthode :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public JFrame displayHTMLJFrame(String HTML, String title){ JFrame fen = new JFrame(); fen.setSize(1000, 800); fen.setTitle(title); JEditorPane pan = new JEditorPane(); pan.setEditorKit(new HTMLEditorKit()); pan.setEditable(false); pan.setText(HTML); fen.add(pan); return fen; }
La méthode doit donc me retourner ma JFrame, mais elle me génère une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public JFrame displayHtmlSqlStatOK_VM(){ return displayHTMLJFrame(displaySQLStat(sqlStatOK, firstMessageDate), "SqlStatOK"); }
J'ai vu sur internet que ceci venait d'un problème de version (Sérialisation et tout et tout), et je pense donc fortement que ça vienne du fait que j'ai ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Problem invoking displayHtmlSqlStatOK_VM : java.rmi.UnmarshalException: error unmarshalling return; nested exception is: java.io.InvalidClassException: javax.swing.JFrame; local class incompatible: stream classdesc serialVersionUID = -5208364155946320552, local class serialVersionUID = -2386951414768123374
Serveur - JDK5 <----> Client (VisualVM) - JDK6
Tout en sachant que je ne peux pas faire évoluer la version du serveur (coûts bien trop importants...) comme le préconisent certains sites et forums.
Ma question est alors la suivante :
Est-il possible que j'affiche cette satanée fenêtre en gardant mon architecture actuelle (JDK5 côté serveur et JDK6 côté client) ?
Je pourrais peut-être forcer la chose ? Lui dire que y'a rien de méchant qu'il peut exécuter mon code ? Enfin j'ai beau lui demander mais il ne me répond pasPeut-être qu'à vous il vous parlera... (oui je craque ^^).
Merci beaucoup à ceux qui me liront et m'aideront !
Si vous avez besoin de plus d'infos surtout n'hésitez pas.
Partager