user811433
user811433

Reputation: 4149

debugging java application deployed in tomcat

I have an application that I deployed in tomcat. Later I configured the code as a project in Eclipse. I want to connect to the tomcat via eclipse and debug the application. Trying to setup a remote debug connection is throwing up errors. Is there any entry that I need to add somewhere in tomcat?

Upvotes: 31

Views: 85463

Answers (8)

hvgotcodes
hvgotcodes

Reputation: 120188

yes, you need to configure tomcat to accept remote debugging connections. There is a FAQ on how to do it with various IDEs.

https://cwiki.apache.org/confluence/display/TOMCAT/Developing#Developing-Q1

Upvotes: 3

hamidreza75
hamidreza75

Reputation: 707

Beside remote debugging, you can debug your app locally within eclipse if you added tomcat in eclipse. just start server and wright click your app and from debug menu hit debug on server. If you have multi module maven project, debug on server just shown up for module with war packaging. If you want debug a class that runs at startup by self, like methods that annotated with @PostConstruct, remember that you should increase server timeout. To do that, go to server view and double click on tomcat and in server preview tab, increase the timeout value.

Upvotes: 0

Joginder Malik
Joginder Malik

Reputation: 485

Debug worked for me. I was using tomcat 8, configured on centos 7. Debug port opened for me after changing 2 settings.

  1. Open tomcat/conf/bin/startup.sh and added below lines
export JPDA_ADDRESS=8000
export JPDA_TRANSPORT=dt_socket
  1. In the same file startup.sh, added jpda before start command.
exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"

Restart the tomcat. In eclipse go to Run>Debug configuration>Remote java application>Add host ip and port(8000) where tomcat is running. In my case i required to open 8000 through firewall too.

firewall-cmd --zone=public --permanent --add-port=8000/tcp
firewall-cmd --reload

Upvotes: 1

chandan gupta
chandan gupta

Reputation: 1349

Steps to setup the tomcat Debugger with eclipse

Install the following things:

java 1.8+

eclipse EE version

download tomcat 8+

open eclipse and go to servers tab and add a new server(window-> show View-> Others -> Search Servers)

Mark your project as Dynamic web Project(Rightclick on Project-> project facets -> select Dynamic web module)

Export war (File-> Export-> search war -> select module and choose the path)

Run as -> Run on Server

Start the tomcat Server in Debug or Run Mode

check on localhost:8080

Upvotes: 0

Fikreselam Elala
Fikreselam Elala

Reputation: 215

  1. Right Click on the project you want to debug and go to Debug As Menu and in the list click on Debug Configurations.

Step 1. Image Description

  1. Then Double click on the Remote Java Application from left menu list. browse for the project u wanna add in then click apply.

    • Also change the listening port to 7999, then after you started the web app from your localhost click the debug button on the same window. Then any break point's will be hit after that.

Step 2. Image Description

Upvotes: 2

Frank Hou
Frank Hou

Reputation: 1818

  1. Create a new tomcat server

Create a new tomcat server

Tomcat version selection

Tomcat path and JRE version selection

Tomcat server is created successfully

  1. Create a new dynamic web project

Create a new dynamic web project

Export war to tomcat server

Export war to tomcat server

  1. Tomcat debug configuration(important), first double click tomcat server, then select "Use Tomcat installation (takes control of Tomcat installation)"

Tomcat debug configuration -- important!

  1. Add breakpoints

Add breakpoints

  1. Run tomcat in debug mode

Run tomcat in debug mode

  1. Test war in web browser

Test war in web browser

  1. Edit source path

Edit source path -- step 1

Edit source path -- step 2

  1. Debug source code in Tomcat

Debug source code in Tomcat

The war file is available here.

Upvotes: 15

Gopesh
Gopesh

Reputation: 81

Simply change the line in startup.bat (if you are using Windows)

from:

call "%EXECUTABLE%" start %CMD_LINE_ARGS%

to:

call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%

Upvotes: 3

laz
laz

Reputation: 28638

First, you need to run Tomcat in debugging mode. The easiest way to do that is to modify the startup file (.bat or .sh depending if you are Windows or not). Find the line near or at the end of the file that contains the start command, and change it to jpda start. This will cause Tomcat to start in debugging mode listening on port 8000.

Next, to connect to this process via Eclipse, select the Run menu and choose Debug Configurations.... In the pane on the left, choose Remote Java Application and click the New launch configuration button above the list. The important settings to note are the Host and Port fields. The host value must match the hostname of the Tomcat process, and the port should be 8000. You also might need to add entries on the Source tab to ensure that all of the source code is available to step through.

Upvotes: 47

Related Questions