Remote debug d'Alfresco

Introduction

Afin de faciliter le développement d'extension Alfresco ou d'applications J2EE Web, il est intéressant de pouvoir configurer son environnement de développement pour permettre le test du code déployé dans Tomcat (environnement de développement) ou sur le serveur d'intégration.

Cela nécessite pour cela de configurer Eclipse pour se connecter à distance à Tomcat.

Cette page présente comment configurer Tomcat et Eclipse ainsi que comment doit être compilé le code pour permettre d'utiliser les points d'arrêt d'Eclipse.

Configuration

Tomcat

Dans le répertoire "tomcat/bin", il faut modifier le fichier "catalina.sh" (environnement Linux) / "catalina.bat" (environnement Windows) et changer la ligne :

set JPDA=

En :

set JPDA=start
set JPDA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

Le port de connexion à Tomcat est ici "8000". Ce port peut bien évidemment être modifié.

 

Lorsque Tomcat démarre, le message suivant devrait apparaître :

Listening for transport dt_socket at address: 8000

Eclipse

A présent, il faut configurer Eclipse pour qu'il puisse se connecter à ce port. Pour cela, il faut aller dans la boîte de dialogue "Debug" :

Il faut ensuite faire un clic droit sur "Remote Java application", puis cliquer sur "New" :

Il est alors possible de modifier la configuration. Il faut définir le nom de l'hôte et le port.

Cette connexion apparaîtra ensuite dans la liste des debuggers :

Astuce - Mode de compilation

Pour permettre d'utiliser les points d'arrêt, il est nécessaire de compiler le code en incluant un ensemble d'informations de debug.

Si ceci n'est pas fait, alors vous aurez l'erreur suivante lors du debug du code :

Unable to install breakpoint in xyz class due to missing line number attributes. modify compiler options to generate line number attributes.

Cas 1 : La compilation est faite en utilisant Eclipse

Il faut vérifier les options de génération des fichiers class. Pour cela, il faut aller dans le menu "Windows > Préférence", puis aller dans "Java > Compiler". Il faut s'assurer que l'attribut Numéro de ligne est bien ajouté aux fichiers class générés. Il est également intéressant d'activer les autres options.

Cas 2 : La compilation est fait par ANT

Il faut éditer le fichier build.xml définissant les tâches ANT et activer le mode debug et définir les niveaux de debug :

<javac srcdir=”"  destdir=”" verbose=”false” debug=”true” debuglevel=”lines,vars,source”>

Après recompilation et déploiement des fichiers class, le debug avec les points d'arrêt est possible.

Catégorie: