J'ai une classe Java et je dois la déboguer (mettre des points d'arrêt et continuer à utiliser F6). J'utilise ANT script pour initier, générer, déployer et exécuter le code. J'utilise:
<javac srcdir="${src.dir}" destdir="${classes.dir}" debug="true" debuglevel="lines,vars,source">
..........
</javac>
Mais lorsque je place le point d'arrêt dans une ligne de ma classe foo.Java et que je lance le script ant (la partie run, cliquez avec le bouton droit de la souris sur Exécuter -> Debug As -> Ant Build), Eclipse ne s'arrête pas à cette ligne code.
Qu'est-ce que je manque?!
Dans la tâche <Java>
ant, vous devez ajouter deux paramètres jvm (<jvmarg>
IIRC) pour activer le débogage:
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5432
Cela lancera le programme Java avec le débogage activé et le programme sera prêt à accepter les connexions du débogueur sur le port 5432. Vous devez ensuite utiliser la fonction de débogage distant de votre IDE et lui demander de se connecter au port 5432.
(N'a pas été en mesure de commenter la réponse donnée, alors je dois faire une autre réponse)
J'ai réalisé que lors du lancement de Ant à partir d'Eclipse, vous devrez ajouter fork = "true" à la tâche <Java>
. En outre, je ne savais pas comment écrire des jvmargs imbriqués, voici donc un exemple:
<Java classname="..." fork="true">
<jvmarg value="-Xdebug" />
<jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5432" />
...
</Java>
Voilà comment je l'ai fait travailler pour moi (Juste pour commenter pour référence future).
set ANT_OPTS=%ANT_OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5432
dans Eclipse
Toolbar >> Run >> Debug Configurations >> + >>
Donnez les valeurs:
Name: Debug_Ant
Project: active-Eclipse-project
Host:localhost
Port:5432
Ceci est destiné à aider les personnes qui se demandent comment déboguer une application Web utilisant ant pour la construction et le déploiement. Ceci est assez fréquent dans les applications existantes. Si le projet a été lancé en tant que "Projet Web dynamique" au début, les étapes suivantes et même Ant ne sont pas nécessaires.
Définissez le point de rupture dans votre code.
Window -> Show View -> Others -> Servers
Ajoutez votre serveur JBoss ou Tomcat par exemple.
Faites un clic droit sur le serveur et choisissez 'Debug'.
Assurez-vous que debug = "true" est défini dans le fichier de construction ant.
Pas:
1) Configurez le débogueur Java distant avec un hôte local comme nom, une adresse de port sous la forme 8000 (ou quelle que soit l'adresse du port de votre système).
2) Créez un fichier de commandes et conservez-le dans le dossier bin de votre Tomcat (cette étape est nécessaire pour déboguer à distance en conservant le ou les serveurs dans le même système).
dans un fichier batch, vous devriez garder cette ligne:
set JPDA_ADDRESS = 8000
set JPDA_TRANSPORT = dt_socket
catalina.bat jpda début
après cela, conservez un point d'arrêt dans votre code Java et déboguez ce débogueur distant. ça va marcher.
Bon codage !!
Moi aussi, j'ai fait face à ce problème, j'ai suivi les étapes suivantes pour résoudre le problème.
Mettez les lignes ci-dessous dans le fichier ANT
Accédez aux configurations de débogage-> Application Java distante-> Créez un nouveau fichier de configuration avec le nom du projet, port = 5432 et l'hôte est localhost, puis enregistrez-le.
Maintenant, lancez votre build.xml en mode débogage, vous devriez voir dans la console que "Listening for transport dt_socket at address 5432"
Maintenant, lancez le fichier de configuration de débogage que vous avez configuré. Votre code Selenium s'exécutera maintenant en mode débogage.
J'espère que cela t'aides.
Si vous rencontrez toujours des problèmes, merci de me le faire savoir afin que je puisse vous aider.
Merci