Integrate Camunda BPMN on JBoss With MySQL
2 min readApr 24, 2024
In this quick post, we take a look at all the XML code and terminal commands you need to integrate these two interesting technologies.
Steps to Install and Setup Camunda on a Wildfly Server:
We’ll be using Camunda version:7.8 and Wildfly server:10.1.0 in this tutorial.
- Install Java and set environment variables.
- Connect to your VM using putty and run the below commands.
#JDK installation - - - - - - - - - - -
sudo apt-get install -y openjdk-8-jdk
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
export PATH=$PATH:/usr/lib/jvm/java-8-openjdk-amd64/bin
- Download
camunda-bpm-wildfly10-7.8.0.zip/camunda-bpm-wildfly10-7.8.0.tar
file. - Navigate to
/opt/camunda/server/wildfly-10.1.0.Final/standalone/deployments
and add the war file. - Run
start-camunda.sh
in/opt/camunda directory
. - To run Camunda as a background process:
./start-camunda.sh
- By default, Camunda will use in-memory H2 DB for storing the process details.
Steps to Connect to MySQL DB:
- Run the scripts present in below directory by selecting the files related to MySQL.
- Once the tables are created, navigate to the /opt/camunda/server/wildfly-10.1.0.Final/standalone/configuration/standalone.xml file.
- Add the Ccamunda subsystem as an extension:
<server xmlns="urn:jboss:domain:1.1">
<extensions>
...
<extension module="org.camunda.bpm.wildfly.camunda-wildfly-subsystem"/>
- Create a data source to connect to MySQL under the data sources section
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
<connection-url>jdbc:mysql://*hostname*/*dbname*</connection-url>
<driver>mysql</driver>
<security>
<user-name>*username*</user-name>
<password>*password*</password>
</security>
</datasource>
<datasource jta="true" jndi-name="java:jboss/datasources/ProcessEngine" pool-name="ProcessEngine" enabled="true" use-java-context="true" use-ccm="true">
<connection-url> jdbc:mysql://*hostname*/*dbname*</connection-url>
<driver>mysql</driver>
<security>
<user-name>*username*</user-name>
<password>*password*</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker" />
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter" />
</validation>
</datasource>
- Under drivers add a MySQL driver.
<driver name="mysql" module="com.sql.mysql">
<driver-class>com.mysql.jdbc.Driver</driver-class>
</driver>
- Navigate to /opt/camunda/server/wildfly-10.1.0.Final/modules/com/mysql/driver/main and add mysql-connector-java-5.1.45-bin.jar and module.xml
- In module.xml, add the below content.
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.sql.mysql">
<resources>
<resource-root path="mysql-connector-java-5.1.45-bin.jar" />
</resources>
<dependencies>
<module name="javax.api" />
<module name="javax.transaction.api" />
</dependencies>
</module>
- Change the subsystem IP to point to the VM’s internal IP.
<wsdl-host>${jboss.bind.address:*IP*}</wsdl-host>
- And also change the management interface’s IP to point to the internal IP.
<interfaces>
<interface name="management">
<inet-address value="${jboss.bind.address.management:*IP*}" />
</interface>
<interface name="public">
<inet-address value="${jboss.bind.address:*IP*}" />
</interface>
</interfaces>
That’s it you are done with running your Camunda Bpm connecting to MySql as Database.