Child pages
  • Setting Up Tomcat For Remote Debugging

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Tomcat can be configured to allow a program such as eclipse to connect remotely using JPDA and see debugging information.
(powerpoint presentation)

To configure tomcat to allow remote debugging, start tomcat using the catalina startup script (from your tomcat home) instead of the normal startup script like so (tomcat must be stopped before you can change over):
WIN:

Code Block
set JPDA_ADDRESS=8000
set JPDA_TRANSPORT=dt_socket
bin/catalina.bat jpda start

UNIX:

Code Block
export JPDA_ADDRESS=8000
export JPDA_TRANSPORT=dt_socket
bin/catalina.sh jpda start

We recommend adding this stuff to your startup script so that you are always running tomcat in debug mode.

  1. Open the startup script in (your_tomcat_home)/bin (WIN: startup.bat, UNIX: startup.sh)
  2. Add the following lines at the first blank line in the file (around line 8)
    WIN:
    Code Block
    set JPDA_ADDRESS=8000
    set JPDA_TRANSPORT=dt_socket
    
    UNIX:
    Code Block
    export JPDA_ADDRESS=8000
    export JPDA_TRANSPORT=dt_socket
    
  3. Change the execute line at the end to include jpda start
    WIN:
    Code Block
    call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%
    
    UNIX:
    Code Block
    exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"
    
  4. Run the startup script when starting tomcat to run tomcat in debug mode

If you're concerned about opening up the known port for debugging, you can change the port on which JPDA listens by setting the JPDA_ADDRESS environment variable to something else (e.g. 38000).

Once you have tomcat configured and started, you can connect to your running tomcat instance using a number of debugging tools. For example, Eclipse has a debugging view that can help you work with tomcat via remote control.

Here are instructions on setting up Eclipse to debug tomcat remotely.

Note

NOTE:
If you are using Eclipse to debug tomcat remotely so in a Windows environment, you may want to prevent tomcat from launching as a separate process, which will prevent the console output from being captured by the Eclipse debugging view. To do so edit the file TOMCAT_HOME/bin/catalina.bat and change:

Code Block
:doStart
shift
if not "%OS%" == "Windows_NT" goto noTitle
set _EXECJAVA=start "Tomcat" %_RUNJAVA%
goto gotTitle
:noTitle
set _EXECJAVA=start %_RUNJAVA%

to:

Code Block
:doStart
shift
if not "%OS%" == "Windows_NT" goto noTitle
set _EXECJAVA= %_RUNJAVA%
goto gotTitle
:noTitle
set _EXECJAVA= %_RUNJAVA%