O'Reilly logo

Jakarta Struts Cookbook by Bill Siggelkow

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

13.4. Enabling Remote Debugging

Problem

You want to debug your Struts application running on a remote server.

Solution

Configure the JVM running your application server to use the Java Platform Debugger Architecture (JPDA). You will need to add the following options to the java command that starts your application server.

JDK 1.3

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

JDK 1.4

-Xdebug 
-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y

You can use any IDE or tool that supports JPDA debugging such as Eclipse, IntelliJ IDEA, and JSWAT.

Discussion

The JPDA has made debugging Java applications much easier: You can use any debugging tool you want independently of the application being debugged. JPDA allows you to debug a Java application running in a separate JVM on a remote server on your network. Your local JVM, running the debugger, connects to the remote JVM across the network using the host name and a known port. In the Solution, the address specifies the port.

This approach works well when the two computers are the same—for example, your desktop machine. JPDA permits you to have two JVMs—one for your IDE or debugger and one for the application server—that can work together. You no longer have to run the application server and your IDE all within the same process.

If you're using Tomcat as your application server, debugging is easier. Tomcat's startup scripts include the JPDA options shown in the Solution. By ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required