Prerequisites • Exercise 0 • Exercise 1 • Exercise 1.1 • Exercise 2 • Exercise 3 • Exercise 4 • Exercise 5 • Exercise 6
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 17 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.test
organization in a console at location.../dsf-process-tutorial/dev-setup
:docker-compose up dic-fhir
-
Start the DSF BPE server for the
dic.dsf.test
organization 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
DicTask
classdoExecute
method. -
Start your previously defined remote Java debugger in your IDE.
-
Execute the
TutorialExampleStarter
class to startdsfdev_dicProcess
. -
Use your IDE's debugger to step through the code of the
DicTask
classdoExecute
method.
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