Reputation: 1151
I just moved from Netbeans to Eclipse. In Netbeans, I can debug Playframework applications out of the box. However, in Eclipse, it seems hard to configure this in order to debug a web app (a Playframework app in specific).
As in Play! documentation,
The main launcher in only usable with the Run As eclipse command. You can then use the “Connect JPDA launcher” using “Debug As” to start a debugging session at any time. Stopping the debugging session will not stop the server.
However, I can not see “Connect JPDA launcher” in "Debug As" (I'm using Eclipse Classic 3.7.0). I've searched about JPDA (I'm new to Java and don't know about "main launcher" and JPDA, then config Remote Debug as instruct in http://javarevisited.blogspot.com/2011/02/how-to-setup-remote-debugging-in.html But it's returning an error:
Failed to connect to remote VM. Connection refused. Connection refused: connect
I've searched and found some suggestions like:
1.)editing catalina.bat and adding the lines : set JPDA_TRANSPORT=dt_socket ... set JPDA_ADDRESS=8000 AND 2.)Editing startup.bat call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%
Actually I don't clearly understand this and I guess it's for configuring Tomcat. However, I'm using Play! default server, checked the application.conf and sure that it's listening to port 9000 and 8000 for JPDA.
Of course, I have started the Play app before debugging, I can access the app via port 9000 normally. I'm using Win 7 with no admin rights.
Do you have a detailed guide on debugging Play! in Eclipse?
Upvotes: 38
Views: 36477
Reputation: 5787
I guess most of you are running the play framework with Typesafe Activator. If you are doing so, This may help you,
activator -jvm-debug ~run
Like : activator -jvm-debug 9999 ~run
(then It will start the debugger in 9999 port along with the app running in 9000 port.)
Upvotes: 4
Reputation: 293
As of Play 2.1.2, I was getting the 'address in use' error when running play debug run.
The fix was to edit play.bat in play-2.1.2 directory and change these two lines:
:setDebug
set JPDA_PORT=9999
to
:setDebug
set JPDA_PORT=8551
Then in Eclipse, select Debug Configurations, find "Remote Java Application", do New. Then set port to 8551. Now you can start play using
play debug run
And then in Eclipse start debugging using the debug configuration you created about.
Upvotes: 2
Reputation: 71
Play 2.1-RC2 : Running Play! app that is synced with Eclipse
To make the project Eclipse compatible, got he project folder and then give command ">play eclipse". Now you can add it as an existing project form eclipse.
Then to run it you have to first run start play in the project folder i.e. command "play"
This will activate play server and identify the app in the project i.e. [appname]$ now you have to just give the command "run" to see your app running on the localhost:9000 or whichever port config you have specified.
Debug mode: To run this similarly you need first give command "play" then [appname]$ "play debug run" this will by default use port 9999 so when you go to localhost:9000 in your browser and in your eclipse file -> Debug As -> Debug configuration.. -> New Remote Java Application -> connect specify port 9999 and debug
Upvotes: 7
Reputation: 21663
As of Play 2.0, the eclipse
folder and launchers are no longer generated when you run play eclipsify
. After running play eclipsify
, you can debug your project in Eclipse as follows:
play debug run
.Debug As -> Debug Configurations...
Remote Java Application
, then click New
.localhost
. Set the port to 9999
(the default port used by the play debug run
command).Apply
to save, then Debug
to connect to your running Play instance.Upvotes: 115
Reputation: 553
If you run "play eclipsify" on the project folder, it will create two run configurations. Looking at the run configuration details, you should check if the following line (or something similar) is in the "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"
Here you can configure the debugging port. With this config, I can attach to process using the instructuctions you have.
Upvotes: 1
Reputation: 8608
First of all, you have created the configuration files for Eclipse by using the play eclipsify YourProject
command, right? (If not, see Play framework documentation for more information.)
After that, you should have a folder named eclipse
in your project. In it, you should see commands Connect JDPA to YourProject.launch
, YourProject.launch
and Test YourProject.launch
.
Right-click on the YourProject.launch
and choose Run As --> YourProject
from the pop-up menu. That will start your application. When the application is running, right-click on the Connect JDPA to YourProject.launch
, and choose Debug As --> Connect JDPA to YourProject.launch
from the pop-up menu. That will start a debug session on your application.
Upvotes: 31