web-dev-qa-db-fra.com

Debug Play Framework dans Eclipse

Je viens de passer de Netbeans à Eclipse. Dans Netbeans, je peux déboguer les applications Playframework hors de la boîte. Cependant, dans Eclipse, il semble difficile de configurer cela afin de déboguer une application web (une application Playframework en particulier).

Comme dans Play! Documentation,

Le lanceur principal n'est utilisable qu'avec la commande Exécuter en tant qu'éclipse. Vous pouvez ensuite utiliser le "Lanceur JPDA Connect" à l'aide de "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 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 sur Java et je ne connais pas le "lanceur principal" et JPDA, puis je configure le débogage à distance comme indiqué dans http: // javarevisited.blogspot.com/2011/02/how-to-setup-remote-debugging-in.html Mais cela renvoie une erreur:

Impossible de se connecter à la machine virtuelle distante. Connexion rejetée. Connexion refusée: connectez

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

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

En fait, je ne comprends pas clairement cela et je suppose que c'est pour configurer Tomcat. Cependant, j'utilise Play! serveur par défaut, vérifié le fichier application.conf et assurez-vous qu'il écoute les ports 9000 et 8000 pour JPDA.

Bien sûr, j'ai démarré 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?

39
Thang Nguyen

Tout d'abord, vous avez créé les fichiers de configuration pour Eclipse en utilisant le play eclipsify YourProject commande, non? (Sinon, voir Play framework documentation pour plus d'informations.)

Après cela, vous devriez avoir un dossier nommé Eclipse dans votre projet. Vous y verrez des commandes Connect JDPA to YourProject.launch, YourProject.launch et Test YourProject.launch.

Faites un clic droit sur le YourProject.launch et choisissez Run As --> YourProject dans le menu local. Cela démarrera votre candidature. Lorsque l'application est en cours d'exécution, cliquez avec le bouton droit sur Connect JDPA to YourProject.launch, et choisissez Debug As --> Connect JDPA to YourProject.launch dans le menu local. Cela lancera une session de débogage sur votre application.

30
Tommi

Depuis Play 2.0, le dossier Eclipse et les lanceurs ne sont plus générés lorsque vous exécutez 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 avec le bouton droit sur votre projet, puis choisissez Debug As -> Debug Configurations...
  3. Clic-droit Remote Java Application, puis cliquez sur New.
  4. L'hôte doit déjà être défini sur localhost. Définissez le port sur 9999 (le port par défaut utilisé par le play debug run commande).
  5. Cliquez sur Apply pour enregistrer, puis sur Debug pour vous connecter à votre instance Play en cours d'exécution.
114
Mansoor Siddiqui

Play 2.1-RC2: Running Play! application synchronisée avec Eclipse

Pour rendre le projet Eclipse compatible, il a obtenu le dossier du projet et ensuite donné la commande "> play Eclipse". Vous pouvez maintenant l'ajouter en tant que projet Eclipse existant.

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 lecture et identifiera l'application dans le projet, c'est-à-dire [appname] $, il vous suffit maintenant de donner la commande "run" pour voir votre application s'exécuter sur l'hôte local: 9000 ou selon la configuration de port que vous avez spécifiée.

Mode débogage: Pour exécuter cela de la même manière, vous devez d'abord donner la commande "play" puis [appname] $ "play debug run" cela utilisera par défaut le port 9999, donc lorsque vous accédez à localhost: 9000 dans votre navigateur et dans votre fichier Eclipse -> Debug As -> Debug configuration .. -> New Remote Java Application -> connecter spécifier le port 9999 et déboguer

7
user1997292

Je suppose que la plupart d'entre vous exécutent le framework de jeu avec Typesafe Activator. Si vous le faites, cela peut vous aider,

  1. activateur -jvm-debug ~ run

    Comme: activator -jvm-debug 9999 ~ run

(Ensuite, il démarrera le débogueur dans le port 9999 avec l'application exécutée dans le port 9000.)

  1. Maintenant, allez dans Eclipse et faites un clic droit sur le nom du projet que vous souhaitez déboguer et sélectionnez Debug As -> Debug configuration .. -> (select) Remote Java Application - > nouveau (en haut à gauche une icône avec un petit signe plus) -> connectez spécifiez le port 9999 et déboguez.
4

Avec l'activateur, vous aurez besoin de activator -jvm-debug <port number> ~run

4
0fnt

À partir de Play 2.1.2, j'obtenais l'erreur "adresse en cours d'utilisation" lors de l'exécution de l'exécution du débogage de lecture.

Le correctif consistait à modifier play.bat dans le répertoire play-2.1.2 et à modifier ces deux lignes:

:setDebug
set JPDA_PORT=9999

à

:setDebug
set JPDA_PORT=8551

Ensuite, dans Eclipse, sélectionnez Debug Configurations, recherchez "Remote Java Application", do New. Ensuite, définissez le port sur 8551. Maintenant, vous pouvez commencer à jouer en utilisant

play debug run

Et puis, dans Eclipse, démarrez le débogage à l'aide de la configuration de débogage que vous avez créée.

2
IanRae

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

-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"

Ici, vous pouvez configurer le port de débogage. Avec cette config, je peux attacher au processus en utilisant les instructions que vous avez.

1
javierhe