This page explains how to set up remote-debugging of ServiceMix using Eclipse.

Basically, you have to perform the following steps:

  1. Enable remote debugging in servicemix.bat
  2. Specify a remote-debugging launch configuration
  3. Start SM and switch to Debug-Perspective

Enable remote debugging in ServiceMix

The following section in servicemix.bat is the one that matters:

    rem Use the defaults if JAVA_DEBUG_OPTS was not set
    call :warn Enabling Java debug options: %JAVA_DEBUG_OPTS%

In order to activate it, you need to set the environment variable SERVICEMIX_DEBUG.

For instance in Windows:


Or in Linux:


ServiceMix runs in debugging mode if you can see the following output when running it:

servicemix.bat: Enabling Java debug options: -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005

The debugging options can be modified in servicemix.bat via the DEFAULT_JAVA_DEBUG_OPTS. The default values are:

set DEFAULT_JAVA_DEBUG_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005

Specifying a Remote Debugging Launch Configuration

Specify an Eclipse Remote Java Application debug launch configuration on the project you want to monitor.

  1. Open Run - Debug
  2. Mark Remote Java Application
  3. Create a New Launch Configuration
  4. Specify a name, the project you want to debug (e.g. servicemix-wsn2005) and the connection properties.
  5. Apply.

See for details.

Performing Debugging

  1. Add breakpoints/debug information to the relevant code inside Eclipse.
  2. Start ServiceMix.
  3. Start debugging with the previously created launch configuration.
  4. Switch to debug perspective.
  5. Exercise the error-causing behaviour.
  6. Wait for Eclipse to be notified of the breakpoints.
  • No labels