Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do i debug a web application running on jetty in eclipse?

never done web programming before. Is there a way to set breakpoints, see variable values in eclipse? The app i want to debug makes a Query string whcih i would like to easily extract.

like image 769
ollo Avatar asked Jan 30 '12 15:01

ollo


4 Answers

I would run the application with maven using the command: mvnDebug jetty:run

And setup a remote Java application using port 8000, in Eclipse IDE.

See the 'Setting up Maven 2.0.8+' section of: http://docs.codehaus.org/display/MAVENUSER/Dealing+with+Eclipse-based+IDE

like image 86
eaykin Avatar answered Oct 17 '22 02:10

eaykin


I would just expand eaykin's answer as the URL is broken.

Run the Mvn Debug as bellow...

$ mvnDebug -Dmaven.test.skip -Denvironment=dev clean jetty:run

This will wait on port 8000

Preparing to Execute Maven in Debug Mode Listening for transport dt_socket at address: 8000

Then go to the Eclipse Run --> Debug Configurations --> Remote Java Applications Define Host as 'localhost' and port as 8000 if they are not default.

If you click on the "Debug" button, this will start the application from mvn.

like image 23
Sumon Rahman Avatar answered Oct 17 '22 03:10

Sumon Rahman


Click External Tools Config,

enter image description here

Select program and click the new button top left. Set location to your maven binary working directory to local workspace and arguments to jetty:run enter image description here

In the environment tab set the maven opts. Notice socket address = 4000 and suspend=y enter image description here

The go to debug configurations and add a new remote application. Add a project name and set the socket address. Now run the External tool it should say:

Listening for transport dt_socket at address: 4000

Then you can debug the remote app and add breakpoints etc.

enter image description hereenter image description here

like image 23
Usman Ismail Avatar answered Oct 17 '22 03:10

Usman Ismail


None of the answers worked for me. Here's what did work:

  • Create Maven Eclipse Runtime for your project:
  • right-click on project -> maven build -> goals: jetty:run
  • go to JRE tab of your Maven Eclipse Runtime, and in the VM arguments section add:

-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

When you execute this runtime, the first thing the Eclipse console outputs (in blue) is:

Listening for transport dt_socket at address: 8000

Now you can create a Remote Java application Debug Runtime and connect to the debug port (8000 in this example)

like image 4
Shivan Dragon Avatar answered Oct 17 '22 04:10

Shivan Dragon