Integrate Camunda BPMN With MySQL
In this quick post, we take a look at all the XML code and terminal commands you need to integrate these two interesting technologies.
Join the DZone community and get the full member experience.
Join For FreeSteps 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
camunda-bpm-wildfly10-7.8.0.zip/camunda-bpm-wildfly10-7.8.0.tar
file./opt/camunda/server/wildfly-10.1.0.Final/standalone/deployments
and add the war file.start-camunda.sh
in/opt/camunda directory
../start-camunda.sh
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>
<?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>
Opinions expressed by DZone contributors are their own.
Comments