Debugger avec Eclipse une webapp déployée dans un serveur Tomcat

L’objectif de ce tutoriel est de présenter une suite de manœuvres élémentaires pour ajouter des points d’arrêts dans nos sources sous Eclipse, alors que notre webapp est compilée et déployée dans un serveur Tomcat.

Pour faire cela, nous allons procéder en deux étapes :
1. Lancer Tomcat en mode « debug »
2. Configurer Eclipse pour qu’il dialogue avec le mode débug de Tomcat

haut

1. Lancer Tomcat en mode « debug »

Je propose de créer un petit script (fichier .bat sous windows ou .sh sous linux) contenant :

1
2
3
4
set CATALINA_HOME=C:\tomcat
set JAVA_HOME=C:\java\jdk
set CATALINA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
%CATALINA_HOME%\bin\startup

1. CATALINA_HOME est la racine de votre installation de Tomcat
2. JAVA_HOME est la racine d’un JDK (attention, pour le mode deubug, un JRE ne suffit pas)
3. CATALINA_OPTS est une suite d’options complétant les options de la JVM (JAVA_OPTS), mais applicables pour le contexte de Catalina uniquement. Les options que je propose d’y ajouter activent le mode debug sur le port 8000 (n’importe quel port disponible fera l’affaire). Besoin de plus d’info ?

>>Une fois que vous avez adapté les deux premières variables (et la dernière ligne sous Linux) à votre configuration, lancer le script.

haut

2. Configurer Eclipse pour qu’il dialogue avec le mode débug de Tomcat

Dans Eclipse, depuis le menu « Run », ouvrir « Debug Configurations ».
Faire un clic-droit sur « Remote Java Application », puis sélectionner « New ».
remoteDebug
1) Entrer le nom de la configuration
2) Sélectionner le projet Web correspondant dans Eclipse
3) Entrer le port correspondant au mode debug de Tomcat
4) Si cette case est cochée, l’appuie sur le carré rouge dans la perspective debug d’Eclipse va arrêter le serveur Tomcat…
5) Ajouter éventuellement des sources complémentaires dans lesquelles on souhaitera mettre des points d’arrêt

>>Cliquer sur « Debug » en bas de l’écran, puis poser un point d’arrêt (il doit y avoir un petit « v » sur le rond du point d’arrêt dans Eclipse) et naviguer dans votre webapp pour vérifier que votre debug fonctionne bien.