How to make the debugging in playframework in IntelliJ Idea

Here we have a link

http://www.playframework.org/documentation/1.0.1/ide

about how to configure playframework to be working with different IDEs. There they say a couple of words about debugging, but it is not clear - how can I perform the debugging? If I put a break-point, let's say in my Model's constructor class, then how and what I should launch to initialize debugging? I use IntelliJ Idea.

For example when I use Jboss, or Tomcat, there is an option in the IDE within those servers to run them in debug mode or "normal" mode. But how to work with Play Framework in this context? Should I configure remote debugging somehow?

Answers


when you launch Play Framework (via play run) you will see that is says that the debug port is running at a certain address. This is a standard Java behavior on servers (having a debug port enabled).

Most IDEs allow you to set up a connection to that remote port so you can debug the code remotely. The specific steps will depend on the IDE you are using, but it should be as simple as that.


Most convenient way to run/debug applications in intellij IDEA is the following.

Menu command: Run -> Edit Configuration!

Add new configuration -> Application

Then fill up the fields:

Main class:

play.server.Server

VM Parameters:

-Dapplication.path=.

You should have something similar:

If you did it correctly, then you can run and stop your app right from IDE

EDIT for Play! 2

Play 2 has good documentation for debugging. So go read it. But if you want to investigate run/debug buttons method - read further.

It is different for Play 2.

Settings:

Main class:

play.core.server.NettyServer or play.core.server.ProdServerStart

VM Parameters:

-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9999 -Dapplication.path=.

You still can debug your application by pressing debug button but I have not figured out some issues:

  • It always starts in PROD mode, so you can't make hot code changes.

  • RUNNING_PID. There is an error when you restart your debugging session saying that you have to delete this file.


In Play 2, simply do the following:

  • From the shell, run play debug
  • You'll be dropped into the debug console. Type run and hit enter.
  • Then create a Remote configuration in IntelliJ IDEA set up for "localhost" and 9999.
  • Start the new configuration

If its a play project, from the command line :

play debug

If its a SBT play project from the command line :

 sbt -jvm-debug 9999 run

debug port is 9999 by default

now create a remote configuration

in IntelliJ :

Go to "edit run configurations"

Create a new remote configuration (port 9999, all other details leave with default values)

run the new debug configuration (don't forget to put a break point)


I had to change this line in my build.sbt from:

fork in run := true

to

fork in run := false

for the breakpoints to work in IntelliJ IDEA 15.0 with the Play 2 App run configuration.


I had a similar problem.

play (cloned from github at 2011-08-28) and intellij 10.5

SEVERE: Cannot read application.conf

my fix was: -Dapplication.path=. (without "")

to set -Djavaagent=... was no longer necessary on my box.


Since version 11 of IDEA, there is native support for the Play framework in the ultimate edition. To debug your Play application do the following:

  • from the command-line, create a new demo app using 'play new demoapp'
  • from the command-line, create Intellij project/module files using 'play idea demoapp'
  • optionally edit .iml file and change '1.6' by '1.7' if you use the latest JDK (bug!)
  • start Intellij, and open the demoapp project
  • Go to Run/Edit Configuration
  • Press the '+' button, and add a 'remote' configuration
  • Choose Transport:socket, Debugger mode:Attach, Host:localhost, Port 8000
  • Set the 'name' and the 'classpath-module'
  • Start the Play! framework support in IDEA by choosing Tools/Play framework
  • Start the demo application by typing 'play run play101' in the Play! console
  • Set a breakpoint in the Application.java file on the 'render()' line
  • Start the 'remote' debug configuration.
  • In a browser, go to http://localhost:9000

You should now hit the breakpoint.


With an SBT project, you can debug from the IDE debugger with an SBT Task configuration (Run->Edit Configurations-> Add New Configuration->SBT Task) - with the Tasks setting set to:

"run 9000" "-jvm-debug 9999"

9000 is the site port, 9999 is the default debug port. The quotes are required

Then select the configuration & debug

Works with the community edition (2016.2)


my fix was: open the "Run/Debug Configurations" dialog, then change the "working directory" to the project directory.


Need Your Help

Get order ids with status = 'Complete' in Magento

php magento orders

I am working on getting order ids and other details for orders with status ='complete' in Magento. I am sure there is a way in magento where we can retrieve all orders with status as Complete. Sinc...

configure does not recognize androideabi

android-ndk autotools configure autoconf android-ndk-r5

I am trying to compile a library using android-ndk-r5 standalone toolchain and autotools. When doing a ./configure, it fails with: