Prerequisites • Exercise 0 • Exercise 1 • Exercise 1.1 • Exercise 2 • Exercise 3 • Exercise 4 • Exercise 5 • Exercise 6 • Exercise 7
This exercise looks at how to use the Java debugger of your IDE to remotely debug the execution of a process plugin.
The DSF FHIR server and the DSF BPE server applications are written in Java and as such are executed on a headless JRE 25 within their docker containers. Command line arguments can be passed to the JVM inside the ghcr.io/datasharingframework/fhir and ghcr.io/datasharingframework/bpe docker images by specifying the environment variable EXTRA_JVM_ARGS. This can be used for example to configure the minimum and maximum heap of the JVM; but can also be used to specify a remote debugging port, which we will use in this exercise.
An EXTRA_JVM_ARGS environment variable is already configured for all DSF FHIR server and DSF BPE server docker containers in the tutorial docker compose test setup. Take a look at the docker-compose.yml file to look up the port numbers specified for the different DSF FHIR and DSF BPE servers.
-
Start the DSF FHIR server for the
dic.dsf.testorganization in a console at location.../dsf-process-tutorial/dev-setup:docker compose up dic-fhir -
Start the DSF BPE server for the
dic.dsf.testorganization in second console at location.../dsf-process-tutorial/dev-setup:docker compose up dic-bpe -
Configure your Java IDE for remote debugging
-
Create a debug breakpoint in the first line of the
DicTaskclassexecutemethod. -
Start your previously defined remote Java debugger in your IDE.
-
Start
exampleorg_dicProcesseither via the DSF FHIR server UI using the Draft Task created in exercise 1 or cURL. -
Use your IDE's debugger to step through the code of the
DicTaskclassexecutemethod.
You can also use this technique to debug the DSF FHIR server and DSF BPE server side of the DSF by cloning the DSF repository and setting up the remote debugger in that project. You will be able to see what the DSF is doing internally when executing your process.
Prerequisites • Exercise 0 • Exercise 1 • Exercise 1.1 • Exercise 2 • Exercise 3 • Exercise 4 • Exercise 5 • Exercise 6 • Exercise 7

