Bloqué sur le TP JMX

Conception de logiciels Intranet : patrons et canevas

Modérateurs : Douin, graffion

saulnierJp
Messages : 24
Inscription : 27 déc. 2016 13:06

Bloqué sur le TP JMX

Message par saulnierJp » 01 avr. 2017 18:03

Bonjour M DOUIN,

Je suis bloqué sur le TP JMX. Si je reprends le cours et les ED, tout fonctionne parfaitement dans jconsole. Mais avec le TP, j'ai deux soucis et je tourne en rond:

1) quand je lance java -cp .:+libs/jdmkrt.jar question1.TCPServerAgent puis java -cp . question1.ClientRMI, dans le premier terminal, j'obtiens une nullPointerException sur la cause:

Code : Tout sélectionner

TCPServerAgent is running...
Exception in thread "Thread-2" java.lang.NullPointerException
	at question1.TCPServer$NotificationHandler.onException(TCPServer.java:26)
	at question1.ExperimentalTCPServer.run(ExperimentalTCPServer.java:91)
	at java.lang.Thread.run(Thread.java:745)
J'essaie d'afficher cela dans la classe TCPServer:

Code : Tout sélectionner

    private class NotificationHandler implements ExceptionListener, Serializable
    {
        public void onException(Throwable cause)
        {
            TCPServer.this.sequenceNumber++;
            
            cause.printStackTrace();

            // envoi d'une notification, aux abonnes
            // a completer
            sendNotification(
                    new Notification("TCPServer.failure",
                            this,
                            sequenceNumber,
                            cause.getMessage()
                    )
            );
        }
    }
2) Et quand je tente de mettre un message vide à la place de cause.getMessage() et que je teste avec jconsole, j'ai une popup d'erreur quand je souscris aux notifications:

ClientNotifForwarder NotifFetcher.fetchOneNotif
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)

Je cherche depuis ce matin mais je ne vois pas du tout comment faire, si vous pouviez me donner une piste.

Merci par avance,
Jean-Pierre Saulnier

saulnierJp
Messages : 24
Inscription : 27 déc. 2016 13:06

Re: Bloqué sur le TP JMX

Message par saulnierJp » 01 avr. 2017 18:15

Pardon, "retirez" cause.printStackTrace(); pour avoir le code que j'ai écrit, c'était juste un debug qui me renvoie mon fameux nullPointerException

saulnierJp
Messages : 24
Inscription : 27 déc. 2016 13:06

Re: Bloqué sur le TP JMX

Message par saulnierJp » 01 avr. 2017 22:12

J'ai trouvé! Je me plaçais un cran trop bas, au niveau de la classe privée, au lieu de faire appel à la classe parente.

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

Re: Bloqué sur le TP JMX

Message par Douin » 02 avr. 2017 8:52

Bonjoir, nous referons une passe sur jmx lundi soir... bon dimanche

StevenW
Messages : 14
Inscription : 11 mars 2017 8:29

Re: Bloqué sur le TP JMX

Message par StevenW » 05 avr. 2017 9:05

Bonjour Jean-Pierre,

Est ce que tu reçoit bien la notification de panne de TCPServer dans jconsole et dans ClientRMI après avoir cliquer sur le bouton start()? Moi j'ai toujours la même exception :

Code : Tout sélectionner

TCPServerAgent is running...
Exception in thread "Thread-3" java.lang.NullPointerException
        at question1.TCPServer$NotificationHandler.onException(TCPServer.java:34)
        at question1.ExperimentalTCPServer.run(ExperimentalTCPServer.java:82)
        at java.lang.Thread.run(Unknown Source)
Pourtant je pense bien faire appel à la classe parente pour le méthode sendNotification() :

Code : Tout sélectionner

TCPServer.this.sendNotification(
                       new Notification(
                               "TCPServer.failure",
                                TCPServer.this,
                                TCPServer.this.sequenceNumber,
                                System.currentTimeMillis(),
                                cause.getMessage()));
RmiRegistry se lance bien ainsi que TCPServerAgent et ClientRMI, donc je ne vois pas d'où cela peut venir. Si tu as une toute petite indication.

Merci,

Steven

fcollet
Messages : 6
Inscription : 16 nov. 2016 11:14

Re: Bloqué sur le TP JMX

Message par fcollet » 05 avr. 2017 9:38

Bonjour,

J'ai consacré pas mal de temps sur ce problème ; L'erreur provient de la méthode getMessage() qui renvoie null.
Je t'invite à relire l'énoncé du TP dans lequel est précisé le contenu du message à propager.

Bien cordialement,
Frédéric

StevenW
Messages : 14
Inscription : 11 mars 2017 8:29

Re: Bloqué sur le TP JMX

Message par StevenW » 05 avr. 2017 22:15

Bonjour Frédéric,

Ah merci pour l'indice, c'est bon çà passe. En fait l'exception du ServerSocket ne sert à rien dans ce cas précis, une fausse piste.

Cordialement,

Steven

Répondre

Qui est en ligne ?

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