Debugging WebSphere Applications with IBM Rational Application Developer

IBM Rational Application Developer (RAD) is basically a typically IBM heavy version of EclipseWebSphere is a typically IBM heavy version of a J2EE server.  Therefore you would think you could debug web applications using RAD fairly easily like you can on JBoss or ATG DAS using Eclipse.

However I could not find anyone on my latest project who knew how to do this.  Fortunately after much Googling I found this PDF document, Debugging Applications in IBM Rational Application Developer, and on page 12 are instructions on how to do this.

The instructions seem to be a little out of date so here are my instructions.

  1. Log into your Integrated Solutions Console.  The default URL is http://localhost:9060/ibm/console/
  2. Navigate using the left side column to Servers –> Application Servers.
  3. Select the Application server you want to debug from the list of Application servers.
  4. Under the Configuration tab select the Debugging Service link which is near the bottom right in the Additional Properties section.

    Debugging Service link in Additional Properties section

  5. Select the “Enable service at server startup” checkbox.  Note the JVM debug port.

    Debugging Service configuration

  6. Press the Apply button.
  7. In the Messages box, which appeared at the top after pressing the Apply button, click on the Save link.

    Debugging Service messages

  8. Stop and start your Application Server.  It should now be running in Debug mode.
  9. In RAD go to the project for the web application you want to debug.
  10. From the menu select Run –> Debug Configurations.
  11. Select Remote Java Application and press the New button (it’s the top left button).  For the port set it to the JVM debug port (default is 7777).
  12. Press Apply.  Then press Debug.  It should connect to WebSphere’s JVM.

Now you can set breakpoints and even change small amounts of code which will be deployed automatically to WebSphere.  No more waiting 15 minutes to test every change you make because builds are so brutally long. 🙂