ollo
ollo

Reputation: 946

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.

Upvotes: 13

Views: 47907

Answers (7)

Bhupendra
Bhupendra

Reputation: 1

If by any chance you are using intellij. It is way easier. Make sure you have jetty plugin installed. Then

  1. In the Maven Tab on the extreme right, expand your project
  2. Expand Plugins
  3. Expand jetty
  4. Right click on jetty:run and select 'Debug DEBUG'Click to see the screenshot for refence

Upvotes: 0

Sumon Rahman
Sumon Rahman

Reputation: 99

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.

Upvotes: 1

zolee
zolee

Reputation: 439

"Trying to run it this way i get CreateProcess error=193, %1 is not a valid Win32 application."

On windows select mvn.bat instead of mvn.exe.

Upvotes: 0

Shivan Dragon
Shivan Dragon

Reputation: 15229

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)

Upvotes: 4

eaykin
eaykin

Reputation: 3813

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

Upvotes: 20

cyber-monk
cyber-monk

Reputation: 5580

The answer for this post shows you the flags need to pass to the JVM for a remote debugger to attach.

Remote debug Jetty (no mvn, no plugins)

This is the page that explains remote debuggers for the JVM

http://docs.oracle.com/javase/1.3/docs/tooldocs/solaris/jdb.html

Upvotes: -1

Usman Ismail
Usman Ismail

Reputation: 18679

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 here enter image description here

Upvotes: 23

Related Questions