39 votes

Déboguer Playframework dans Eclipse

Je viens de passer de Netbeans à Eclipse. Dans Netbeans, je peux déboguer les applications Playframework sans problème. Cependant, dans Eclipse, il semble difficile de configurer cela afin de déboguer une application web (une application Playframework en particulier).

Comme dans la documentation de Play !

Le lanceur principal n'est utilisable qu'avec la commande Run As eclipse. Vous pouvez ensuite utiliser le "Lanceur Connect JPDA" en utilisant "Debug As" pour démarrer une session de débogage à tout moment. L'arrêt de la session de débogage n'arrêtera pas n'arrêtera pas le serveur.

Cependant, je ne vois pas "Connect JPDA launcher" dans "Debug As" (j'utilise Eclipse Classic 3.7.0). J'ai fait des recherches sur JPDA (je suis nouveau en Java et je ne connais pas le "main launcher" et JPDA, puis j'ai configuré Remote Debug comme indiqué dans http://javarevisited.blogspot.com/2011/02/how-to-setup-remote-debugging-in.html Mais ça renvoie une erreur :

Échec de la connexion à la VM distante. Connexion refusée. Connexion refusée : connect

J'ai cherché et trouvé quelques suggestions comme :

1.)éditer catalina.bat et ajouter les lignes : set JPDA_TRANSPORT=dt_socket ... set JPDA_ADDRESS=8000 AND 2.)Éditer startup.bat call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%

En fait, je n'ai pas bien compris et je suppose que c'est pour configurer Tomcat. Cependant, j'utilise le serveur par défaut de Play !, j'ai vérifié le fichier application.conf et je suis sûr qu'il écoute les ports 9000 et 8000 pour JPDA.

Bien sûr, j'ai lancé l'application Play avant le débogage, je peux accéder à l'application via le port 9000 normalement. J'utilise Win 7 sans droits d'administrateur.

Avez-vous un guide détaillé sur le débogage de Play ! dans Eclipse ?

114voto

Mansoor Siddiqui Points 5910

Depuis la version 2.0 de Play, le eclipse et les lanceurs ne sont plus générés lorsque vous exécutez l'application play eclipsify . Après avoir exécuté play eclipsify vous pouvez déboguer votre projet dans Eclipse comme suit :

  1. Dans une console en dehors d'eclipse, exécutez play debug run .
  2. Dans Eclipse, cliquez à droite sur votre projet, puis choisissez Debug As -> Debug Configurations...
  3. Cliquez à droite sur Remote Java Application puis cliquez sur New .
  4. L'hôte doit déjà être réglé sur localhost . Réglez le port sur 9999 (le port par défaut utilisé par le play debug run commande).
  5. Cliquez sur Apply pour sauvegarder, puis Debug pour vous connecter à votre instance Play en cours d'exécution.

30voto

Tommi Points 5707

Tout d'abord, vous avez créé les fichiers de configuration pour Eclipse à l'aide de la commande play eclipsify YourProject n'est-ce pas ? (Si non, voir Documentation sur le cadre de jeu pour plus d'informations).

Après cela, vous devriez avoir un dossier nommé eclipse dans votre projet. Dans celui-ci, vous devriez voir les commandes Connect JDPA to YourProject.launch , YourProject.launch et Test YourProject.launch .

Cliquez avec le bouton droit de la souris sur le YourProject.launch et choisissez Run As --> YourProject dans le menu contextuel. Cela lancera votre application. Lorsque l'application est en cours d'exécution, cliquez avec le bouton droit de la souris sur l'icône de l'application. Connect JDPA to YourProject.launch et choisissez Debug As --> Connect JDPA to YourProject.launch dans le menu contextuel. Cela lancera une session de débogage sur votre application.

7voto

user1997292 Points 51

Play 2.1-RC2 : Exécution d'une application Play ! synchronisée avec Eclipse

Pour rendre le projet compatible avec Eclipse, récupérez le dossier du projet puis donnez la commande ">play eclipse". Maintenant vous pouvez l'ajouter comme un projet existant dans Eclipse.

Ensuite, pour l'exécuter, vous devez d'abord lancer start play dans le dossier du projet, c'est-à-dire la commande "play".

Cela activera le serveur de jeu et identifiera l'application dans le projet, par exemple [appname]$. Il ne vous reste plus qu'à donner la commande "run" pour voir votre application fonctionner sur le localhost:9000 ou tout autre port que vous avez spécifié.

Mode débogage : Pour l'exécuter de manière similaire, vous devez d'abord donner la commande "play" puis [appname]$ "play debug run" qui utilisera par défaut le port 9999. Ainsi, lorsque vous vous rendez sur localhost:9000 dans votre navigateur et dans votre fichier Eclipse -> Debug As -> Debug configuration -> New Rug. -> Nouvelle application Java distante -> connectez-vous en spécifiant le port 9999 et déboguez.

2voto

IanRae Points 184

Depuis la version 2.1.2 de Play, j'obtenais l'erreur "adresse utilisée" lors de l'exécution de play debug run.

La solution était d'éditer play.bat dans le répertoire play-2.1.2 et de changer ces deux lignes :

:setDebug
set JPDA_PORT=9999

à

:setDebug
set JPDA_PORT=8551

Puis dans Eclipse, sélectionnez Debug Configurations, trouvez "Remote Java Application", faites New. Puis définissez le port à 8551. Maintenant vous pouvez commencer à jouer en utilisant

play debug run

Puis, dans Eclipse, commencez à déboguer en utilisant la configuration de débogage que vous avez créée.

1voto

javierhe Points 168

Si vous exécutez "play eclipsify" sur le dossier du projet, cela créera deux configurations d'exécution. En regardant les détails de la configuration d'exécution, vous devriez vérifier si la ligne suivante (ou quelque chose de similaire) se trouve dans les "VM arguments" :

-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
-Dplay.debug=yes
-Dplay.id=test -Dapplication.path="${project_loc:NMKServer}"
-Djava.endorsed.dirs="c:\Java\play-1.2.2/framework/endorsed"
-javaagent:"c:\Java\play-1.2.2/framework/play-1.2.2.jar"

Vous pouvez configurer ici le port de débogage. Avec cette configuration, je peux m'attacher au processus en utilisant les instructions que vous avez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X