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.