Page 1 sur 1

Bloqué sur le TP JMX

Publié : 01 avr. 2017 18:03
par saulnierJp
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

Re: Bloqué sur le TP JMX

Publié : 01 avr. 2017 18:15
par saulnierJp
Pardon, "retirez" cause.printStackTrace(); pour avoir le code que j'ai écrit, c'était juste un debug qui me renvoie mon fameux nullPointerException

Re: Bloqué sur le TP JMX

Publié : 01 avr. 2017 22:12
par saulnierJp
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.

Re: Bloqué sur le TP JMX

Publié : 02 avr. 2017 8:52
par Douin
Bonjoir, nous referons une passe sur jmx lundi soir... bon dimanche

Re: Bloqué sur le TP JMX

Publié : 05 avr. 2017 9:05
par StevenW
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

Re: Bloqué sur le TP JMX

Publié : 05 avr. 2017 9:38
par fcollet
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

Re: Bloqué sur le TP JMX

Publié : 05 avr. 2017 22:15
par StevenW
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