Il faut compiler le code avec l'option debug.

Bonjour !


J'ai une petite Servlet tournant sous JBoss, que j'essaie de debugger avec Eclipse.

Après avoir enregistré un breakpoint dans le code de la Servlet, et appellé la servlet depuis mon navigateur, l'exécution de l'application s'arrête comme attendu et le code source où se trouve le breakpoint s'affiche dans la perspective Debug. Le problème pourtant est que le suivi de la ligne ne fonctionne pas.

La valeur des variables n'est également pas suivi par Eclipse. Je ne peux donc pas debugger mon application car en l'état cela ne me sert à rien.

Je me demande si cela a un rapport avec la méthode que j'utilise pour la compilation/déploiement. Sous Eclipse, le répertoire output est /bin. Je n'utilise pas ces .class. Je compile les class avec un script Ant, puis compactés dans un .war, qui est à son tour dans un .ear.

Le .ear est ensuite copié dans le répertoire /deploy de JBOSS.

Je me suis assuré que les deux versions du code, celle présente dans Eclipse et celle déployé soient identiques (la version déployée est à jour).


Comme les sources sont présentes dans la configuration du Remote Application Debug (comme on peut le voir ci-dessous), j'ai également éliminé cette piste.

Quelqu'un aurait-il une idée à ce sujet ?


Merci d'avance et bonne journée.

La configuration

J'ai essayé avec Eclilpse 3.4.0 et Galileo. Sur deux machines différentes. La version JDK est 1.6.

jboss-5.1.0.GA

run.bat :
[...]
rem Setup JBoss specific properties
set DEBUG_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8020,server=y,suspend=n
[...]
:RESTART
"%JAVA%" %JAVA_OPTS% ^
%DEBUG_OPTS% ^
-Djava.endorsed.dirs="%JBOSS_ENDORSED_DIRS%" ^
-classpath "%JBOSS_CLASSPATH%" ^
org.jboss.Main %*
[...]

Illustrations :
L'exécution arrêtée au niveau du breakpoint au début de la Servlet. On voit la stacktrace correcte, mais le numéro de la ligne n'est pas affiché, la ligne dans le code source n'est pas non plus surligné. En avançant dans le debugger, F6, on ne voit aucun changement.




La configuration du Debug Remote Application [Connexion]



La configuration du Debug Remote Application [Sources]