Reading the GuideThroughout this guide we will use a number of variables to denote common path names and constants:
$TOMCAT_HOMEpoints to the main directory of the tomcat server.$TOMCAT_VERSIONdenotes the version of Tomcat server.$PLATFORM_VERSIONdenotes the version of ASEE Flow you want to install or already have installed, e.g.7.0.0.$TOMCAT_DISTRIBUTIONrepresents the downloaded pre-packaged ASEE Flow distribution for Tomcat, e.g.camunda-bpm-tomcat-$PLATFORM_VERSION.ziporcamunda-bpm-tomcat-$PLATFORM_VERSION.tar.gz.
Known Limitations in Tomcat 10
Weld Class Loading Issues
In deployment scenarios involving one or more process applications with managed beans, classloading issues may occur if the WELD library is directly embedded in the WAR’s/WEB-INF/lib folder.
To resolve this, move the weld library away from the war and place it into the $CATALINA_HOME/lib folder.The above workaround is not guaranteed to work for cases with bean references between WAR deployments (WAR A referencing a bean from WAR B).The following test scenarios fail on Tomcat 10:Setup
Before you can install the ASEE Flow components, you need to perform a number of required setup steps.Create the Database Schema and Tables
In the default configuration of the distribution, the database schema and all required tables are automatically created in an H2 database when the engine starts up for the first time. If you do not want to use the H2 database, you have to- Create a database schema for ASEE Flow yourself.
- Install the database schema to create all required tables and default indices using our database schema installation guide.
databaseSchemaUpdate property to false (or, in case you are using Oracle, to noop). In Tomcat, this is done in the bpm-platform.xml, located in the $TOMCAT_DISTRIBUTION\server\apache-tomcat-$VERSION\conf\ folder.
Add BPM Bootstrap Server Listener
Add the entryorg.camunda.bpm.container.impl.tomcat.TomcatBpmPlatformBootstrap as Listener before the GlobalResourcesLifecycleListener in your $TOMCAT_HOME/conf/server.xml. This class is responsible for starting and stopping ASEE Flow as Tomcat is started and stopped.
Configure a JDBC Resource
To configure a JDBC Resource you have to edit the file$TOMCAT_HOME/conf/server.xml. This could look like the following example for an H2 database:
Add ASEE Flow Services
Copy the following blocks from${TOMCAT_DISTRIBUTION}/server/apache-tomcat-${TOMCAT_VERSION}/conf/server.xml
into ${TOMCAT_HOME}/conf/server.xml:
Add Required Libraries
Copy all libraries from the$TOMCAT_DISTRIBUTION/lib/ folder to the Tomcat library folder $TOMCAT_HOME/lib:
Furthermore, you have to merge your corresponding JDBC driver into the folder $TOMCAT_HOME/lib.
Add bpm-platform.xml
You have to add the filebpm-platform.xml to the folder $TOMCAT_HOME/conf or, optionally, you can configure the location through some available mechanisms, see Configure location of the bpm-platform.xml file:
Secure Tomcat
Follow the Tomcat Security Howto of your Tomcat version: 9.0, 10.1. In particular, go to${TOMCAT_HOME}/webapps/ and remove the directories
ROOT, docs, examples, manager and host-manager.
Optional Components
This section describes how to install optional ASEE Flow dependencies onto a Tomcat server. None of these are required to work with the core platform.Cockpit, Tasklist and Admin
The following steps are required to deploy the applications:- Download the ASEE Flow web application that contains both applications from our Artifact Repository. Or switch to the private repository for the enterprise version (User and password from license required).
- Copy the war file to
$TOMCAT_HOME/webapps/camunda.war. Optionally you may name it differently or extract it to a folder to deploy it to a different context path. - Startup Tomcat.
- Access Cockpit and Tasklist via
/camunda/app/cockpitand/camunda/app/tasklistor under the context path you configured.
REST API
The following steps are required to deploy the REST API:- Download the REST API web application archive from our Artifact Repository. Or switch to the private repository for the enterprise version (User and password from license required).
- Copy the war file to
$TOMCAT_HOME/webapps. Optionally you may rename it or extract it to a folder to deploy it to a specific context like/engine-rest. - Startup Tomcat.
- Access the REST API on the context you configured.
For example, http://localhost:8080/engine-rest/engine should return the names of all engines of the platform, provided that you deployed the application in the context
/engine-rest. - Enable authentication as described in the REST API documentation
ASEE Flow Connect Plugin
Add the following artifacts (if not existing) from the folder$TOMCAT_DISTRIBUTION/lib/ to the folder $TOMCAT_HOME/lib/:
camunda-engine-plugin-connect-$PLATFORM_VERSION.jarcamunda-commons-utils-$PLATFORM_VERSION.jar
$TOMCAT_HOME/conf/bpm-platform.xml as follows:
ASEE Flow Spin
Add the following artifacts (if not existing) from the folder$TOMCAT_DISTRIBUTION/lib/ to the folder $TOMCAT_HOME/lib/:
camunda-spin-dataformat-all-$PLATFORM_VERSION.jarcamunda-spin-core-$PLATFORM_VERSION.jarcamunda-engine-plugin-spin-$PLATFORM_VERSION.jarcamunda-commons-utils-$PLATFORM_VERSION.jar
$TOMCAT_HOME/conf/bpm-platform.xml as follows:
Groovy Scripting
Add the following artifacts (if not existing) from the folder$TOMCAT_DISTRIBUTION/lib/ to the folder $TOMCAT_HOME/lib/:
groovy-$GROOVY_VERSION.jargroovy-jsr223-$GROOVY_VERSION.jargroovy-json-$GROOVY_VERSION.jargroovy-xml-$GROOVY_VERSION.jargroovy-templates-$GROOVY_VERSION.jargroovy-dateutil-$GROOVY_VERSION.jargroovy-datetime-$GROOVY_VERSION.jar
Freemarker Integration
Add the following artifacts (if not existing) from the folder$TOMCAT_DISTRIBUTION/lib/ to the folder $TOMCAT_HOME/lib/:
camunda-template-engines-freemarker-$PLATFORM_VERSION.jarfreemarker-2.3.31.jarcamunda-commons-utils-$PLATFORM_VERSION.jar
GraalVM JavaScript Integration
Add the following artifacts (if not existing) from the folder$TOMCAT_DISTRIBUTION/lib/ to the folder $TOMCAT_HOME/lib/:
graal-sdk-21.1.0.jaricu4j-68.2.jarjs-21.1.0.jarjs-scriptengine-21.1.0.jarregex-21.1.0.jartruffle-api-21.1.0.jar