Eclipse : Mode Debug à distance

Comment faire du debug "pas à pas" à partir d'un serveur Tomcat distant?


Surement pas une découverte pour certains d'entre vous, je me suis longtemps demandé si il était possible de faire du debug "pas à pas" à partir d'un serveur Tomcat distant.

 

Ce qu'il semble logique de faire : 

En toute logique, on irai dans la configuration d'un nouveau serveur qui au lieu d'être local serait distant : 

image

Sauf que... Tomcat ne permet pas de faire ceci... enfin pas de cette façon. "The currently selected server type does not support remote hosts"

 

Ce qu'il faut faire pour que ça fonctionne : 

Configuration du serveur 

En premier lieu il faut configurer l'instance distante pour être pilotée. Pour cela il faut modifier les options de démarrage du serveur : 

Dans une configuration de base de Tomcat, on modifie le script de démarrage : 

$ sudo nano /etc/init.d/tomcat

Ajouter les éléments suivants à JAVA_OPTS : 

-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

Attention au numéro de port indiqué, il faut qu'il soit accessible à partir du poste de dev.

NE PAS OUBLIER D'ENLEVER CETTE LIGNE PAR LA SUITE (Surtout si le serveur piloté est en PROD!)

Ensuite, redémarrer tomcat :

$ sudo /etc/init.d/tomcat stop 

$ sudo /etc/init.d/tomcat start

 

Configuration du client

Aller dans le menu "Run > Debug Configuration" : 

image

Créer une nouvelle configuration "Remote Java Application", en configurant l'adresse et le port du serveur : (Dommage qu'on ne puisse pas le configurer derrière une commande ssh). Dans l'onglet "source", qui devrait déjà contenir votre dossier source, il n'y a rien à faire sauf config particulière.

Ensuite lancer la connection avec "Debug".

Il semble ne rien se passer, mais si nous définissons un point d'arrêt dans l'application et que l'on déclenche le passage dans ce code nous obtenons le résultat attendu : on passe en debug "pas à pas".

image

 

Résultat 

Ici on voit qu'on est en debug sur le serveur local et sur le serveur distant qui lui est arrêté sur un point d'arrêt : 

image

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.