TP JMX - problème de notification

Conception de logiciels Intranet : patrons et canevas

Modérateurs : Douin, graffion

slash
Messages : 66
Inscription : 04 nov. 2017 2:45

TP JMX - problème de notification

Message par slash » 12 avr. 2018 18:14

Bonjour à tous,

Je cherche vainement depuis quelques jours le moyen d'obtenir mes notifications dans JConsole.
Après avoir souscrit, j'obtiens cette erreur quand la notification doit arriver :

AVERTISSEMENT: Failed to deserialize a notification: java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.lang.ClassNotFoundException: question1.TCPServer$NotificationHandler (no security manager: RMI class loader disabled)

J'ai essayé plusieurs choses, mais rien n'y fait.
Étant donné que je suis parvenu sans problème à refaire la démonstration vue en cours avec SensorAgent, je ne vois pas ce qui peut bloquer.

Voici la classe interne extraite de TCPServer qui gère la notification :

Code : Tout sélectionner

private class NotificationHandler implements ExceptionListener, Serializable {  
    
    public void onException(Throwable cause){
         TCPServer.this.sequenceNumber++;
         // envoi d'une notification, aux abonnés
         sendNotification(
            new Notification(
                "onException",                // un nom
                 this, // instance MBean     
                 sequenceNumber,            // un numéro
                 System.currentTimeMillis(),    // une estampille
                 "une panne est survenue"));    // un message
         }
  }
Et voici ma signature pour TCPServer :

Code : Tout sélectionner

public class TCPServer extends NotificationBroadcasterSupport implements TCPServerMBean, Serializable {
Je précise que mon client RMI et l'agent reçoivent bien les notifications en console. Il n'y a que les notifications depuis JConsole qui bloquent.

Merci à vous si vous avez une idée.

STB
Messages : 26
Inscription : 22 févr. 2017 19:44

Re: TP JMX - problème de notification

Message par STB » 13 avr. 2018 0:40

Même problème pour moi !!!
J'ai essayé les mêmes écritures en ligne de commande que pour le TP RMI, d'instancier RMISecurityManager dans les classes, mais rien à faire, j'ai la même exception que toi dans Jconsole. Sinon tout fonctionne.
Et pourtant mes tests JNews sont OK.
(ps TCPServer et NotificationHandler n' ont pas besoin d'implémenter Serializable puis que leurs interfaces respectives le font. )

Stéphane

Douin
Messages : 301
Inscription : 18 mars 2009 15:46

Re: TP JMX - problème de notification

Message par Douin » 13 avr. 2018 9:01

Bonjour,

Dans la notification, Il me semble que ce n'est pas

Code : Tout sélectionner

        sendNotification(
            new Notification(
                "onException",                // un nom
                 this, // instance MBean     
                 sequenceNumber,            // un numéro
                 System.currentTimeMillis(),    // une estampille
                 "une panne est survenue"));    // un message

Mais

Code : Tout sélectionner

        sendNotification(
            new Notification(
                "onException",                // un nom
                
this, // instance MBean soit le nom de la classe englobante .this

Code : Tout sélectionner

 sequenceNumber,            // un numéro
                 System.currentTimeMillis(),    // une estampille
                 "une panne est survenue"));    // un message
Tenez nous informés

Bonne fin de tp

STB
Messages : 26
Inscription : 22 févr. 2017 19:44

Re: TP JMX - problème de notification

Message par STB » 13 avr. 2018 10:12

Bonjour,

merci M. Douin. Ça fonctionne.

Effectivement, nous sommes dans une classe interne et le Bean est dans la classe englobante.
Le chemin est encore long pour prendre les bons réflexes !

Stéphane

slash
Messages : 66
Inscription : 04 nov. 2017 2:45

Re: TP JMX - problème de notification

Message par slash » 13 avr. 2018 12:56

Bonjour,

Merci beaucoup, ça fonctionne aussi chez moi, même si le code "this.this" me génère une erreur de compilation due apparemment à la dernière release de Java. Je dois utiliser TCPServer.this

STB
Messages : 26
Inscription : 22 févr. 2017 19:44

Re: TP JMX - problème de notification

Message par STB » 13 avr. 2018 19:06

??? C'est bien TCPServer.this qui est attendu, et pas this.this (cf message de M. Douin : "nom de la classe englobante .this ")

slash
Messages : 66
Inscription : 04 nov. 2017 2:45

Re: TP JMX - problème de notification

Message par slash » 14 avr. 2018 14:02

Ah oui, j'ai dû lire trop vite !

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité