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 ...