JFrame en remote entre JDK 5 (Serveur) et 6 (Client - VisualVM)
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... :cry:
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 :
Code:
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;
} |
Que j'appelle dans ma méthode :
Code:
1 2 3
| public JFrame displayHtmlSqlStatOK_VM(){
return displayHTMLJFrame(displaySQLStat(sqlStatOK, firstMessageDate), "SqlStatOK");
} |
La méthode doit donc me retourner ma JFrame, mais elle me génère une erreur :
Code:
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 |
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 :
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 pas :( Peut-ê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.
Autre axe de recherche...
La solution à mon problème pourrait peut-être se trouver ailleurs, car en fait je souhaite simplement un tableau avec un minimum de mise en page (c'est juste pour de la visualisation pour qu'un responsable d'appli ait son pitit tableau lui mettant si possible les données critiques en rouge et pis vala).
Mais je n'ai trouvé nulle part une liste des types que je peux retourner avec VisualVM... Ce qui ne me paraît pourtant pas trop demandé :roll:
Car si on peut afficher ça sous une autre forme pourquoi pas...
Après j'avais pensé à une solution de secours, qui consisterait à créer un fichier HTML temporaire et à l'ouvrir automatiquement dans le navigateur internet, mais bon après ça fait peut-être pas très propre... Mais si ça peut fonctionner ^^
Je suis ouvert à tout axe de recherche !!