jeudi 13 février 2014

Debug a distance sur une application déployée sur Glassfish

Prérequis

  • Le projet correspondant a l'application déployée doit être dans le workspace actif d'éclipse
  • Glassfish doit être installé et lancé
  • Avoir le droit d'écouter le port de débug sur le glassfish (Sera décris plus bas)
  • Avoir des notions d'utilisation de glassfish (opérations standard de stop/start domain)

Configurer Glassfish

  • Se connecter à l'interface d'administration de glassfish
  • Aller dans Configurations> server-config> JVM Settings (Sur cette page se trouve le port écouté dans 'Debug Options', il faut que ce port ne soit pas bloqué par un éventuel pare-feu)
  • Cocher la case 'Enabled'
Voici ce que vous devez avoir puis il faut redémarrer le domaine glassfish afin qu'il soit en mode débug:

  • Stopper le domaine glassfish
  • Lancer le domaine glassfish

Configurer Eclipse

  • Cliquez sur Run --> Debug Configurations ...
  • Aller dans la partie 'Remote Java Application
  • Faire clic droit puis 'New'
Une fenêtre comme ci-dessous devrait s'ouvrir :



  • Dans le champ 'Project', mettre le projet que vous voulez débugger a distance
  • Dans 'Host', l'hôte hébergeant l'applicatif. Ici donc l'url du glassfish (sans http/https ni le port)
  • Dans 'Port' mettre le port hébergeant l'applicatif. Ici donc le port d'écoute du glassfish. C'est celui qui se trouve dans Configurations> server-config> JVM Settings, champ 'Debug Options'
  • Laisser 'Connection Type' sur 'Standard (Socket Attach)
  • Cliquez sur 'Debug'
Si tout se passe bien, dans la vue Debug d'éclipse (vue et non perspective) vous devez pouvoir visualiser les thread sur le glassfish distant.

C'est parti pour le débug!

Maintenant tout est en place pour pouvoir débug, il suffit de placer des points d'arrêts dans le projet sous éclipse. Lors de l'utilisation du programme déployé sur le glassfish distant, si le programme rencontre un point d'arrêt, il s'arrêtera. Vous n'avez plus qu'a regarder dans éclipse ce qui vous intéresse pour le débug de votre application.