Ручная установка
В разделе описано, как установить OpenBPM Engine в чистый Apache Tomcat 11, если готовый дистрибутив не подходит. Библиотеки и файлы настроек берутся из готового дистрибутива для Tomcat, поэтому скачайте его со страницы загрузки.
|
Обозначения
|
|
Известные ограничения CDI
Если процессное приложение содержит управляемые бины CDI, а библиотека Weld лежит в Этот способ не гарантирует работу, если бины одного WAR-файла ссылаются на бины другого. Интеграционные тесты движка |
Обязательные шаги
Схема базы данных
В настройке по умолчанию движок сам создаёт таблицы в базе данных H2 при первом запуске. Для другой СУБД:
-
Создайте базу данных или схему для OpenBPM Engine средствами СУБД.
-
Создайте таблицы и индексы по инструкции Схема базы данных.
-
Запретите движку создавать таблицы при запуске: задайте свойству
databaseSchemaUpdateзначениеfalse(для Oraclenoop) в файле$TOMCAT_HOME/conf/bpm-platform.xml(см. Файл bpm-platform.xml).
Слушатель запуска движка
Добавьте в $TOMCAT_HOME/conf/server.xml слушатель io.openbpm.bpm.container.impl.tomcat.TomcatBpmPlatformBootstrap перед GlobalResourcesLifecycleListener. Слушатель запускает и останавливает движок вместе с Tomcat.
<Server port="8005" shutdown="SHUTDOWN">
...
<Listener className="io.openbpm.bpm.container.impl.tomcat.TomcatBpmPlatformBootstrap" />
...
Источник данных JDBC
Опишите источник данных jdbc/ProcessEngine в $TOMCAT_HOME/conf/server.xml. Пример для H2:
<Server>
...
<GlobalNamingResources>
...
<Resource name="jdbc/ProcessEngine"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
uniqueResourceName="process-engine"
driverClassName="org.h2.Driver"
url="jdbc:h2:./openbpm-engine-h2-dbs/process-engine;TRACE_LEVEL_FILE=0;DB_CLOSE_ON_EXIT=FALSE"
defaultTransactionIsolation="READ_COMMITTED"
username="sa"
password="sa"
maxActive="20"
minIdle="5"
maxIdle="20" />
</GlobalNamingResources>
</Server>
Подробнее об источниках данных JDBC в документации Tomcat 11.
Сервисы движка в JNDI
Скопируйте в раздел GlobalNamingResources файла $TOMCAT_HOME/conf/server.xml следующие ресурсы из $TOMCAT_DISTRIBUTION/server/apache-tomcat-$TOMCAT_VERSION/conf/server.xml:
<Resource name="global/openbpm-engine/process-engine/ProcessEngineService!io.openbpm.bpm.ProcessEngineService" auth="Container"
type="io.openbpm.bpm.ProcessEngineService"
description="OpenBPM Engine Process Engine Service"
factory="io.openbpm.bpm.container.impl.jndi.ProcessEngineServiceObjectFactory" />
<Resource name="global/openbpm-engine/process-engine/ProcessApplicationService!io.openbpm.bpm.ProcessApplicationService" auth="Container"
type="io.openbpm.bpm.ProcessApplicationService"
description="OpenBPM Engine Process Application Service"
factory="io.openbpm.bpm.container.impl.jndi.ProcessApplicationServiceObjectFactory" />
Библиотеки
Скопируйте в $TOMCAT_HOME/lib библиотеки движка из $DISTRIBUTION_LIB. Это все JAR-файлы, которых нет в чистом Tomcat той же версии:
-
библиотеки движка:
openbpm-engine-*.jar(движок, модели BPMN и DMN, DMN-движок, JUEL, commons, плагины, Spin, Connect, LDAP); -
зависимости движка: MyBatis,
java-uuid-generator,joda-time, FEEL Scala (feel-engine), SLF4J; -
языки скриптов и шаблоны: Groovy, GraalVM JavaScript, FreeMarker (см. Дополнительные компоненты);
-
драйвер H2 (
h2-*.jar), если используете H2.
Для другой СУБД положите в $TOMCAT_HOME/lib её JDBC-драйвер.
Файл bpm-platform.xml
Скопируйте bpm-platform.xml из $TOMCAT_DISTRIBUTION/server/apache-tomcat-$TOMCAT_VERSION/conf в $TOMCAT_HOME/conf. Расположение файла можно изменить, см. Расположение файла bpm-platform.xml. Минимальное содержимое файла:
<?xml version="1.0" encoding="UTF-8"?>
<bpm-platform xmlns="http://www.operaton.org/schema/1.0/BpmPlatform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.operaton.org/schema/1.0/BpmPlatform http://www.operaton.org/schema/1.0/BpmPlatform ">
<job-executor>
<job-acquisition name="default" />
</job-executor>
<process-engine name="default">
<job-acquisition>default</job-acquisition>
<configuration>io.openbpm.bpm.engine.impl.cfg.StandaloneProcessEngineConfiguration</configuration>
<datasource>java:jdbc/ProcessEngine</datasource>
<properties>
<property name="history">full</property>
<property name="databaseSchemaUpdate">true</property>
<property name="authorizationEnabled">true</property>
<property name="jobExecutorDeploymentAware">true</property>
</properties>
</process-engine>
</bpm-platform>
Защита Tomcat
Настройте Tomcat по руководству по безопасности Tomcat 11. В частности, удалите из $TOMCAT_HOME/webapps каталоги ROOT, docs, examples, manager и host-manager.
Дополнительные компоненты
Компоненты ниже необязательны: движок работает и без них. Если на шаге Библиотеки вы скопировали все библиотеки, нужные JAR-файлы уже на месте. Списки ниже пригодятся, если библиотеки копировались выборочно.
В bpm-platform.xml готового дистрибутива плагины Connect и Spin уже зарегистрированы. Если вы скопировали этот файл, регистрировать их повторно не нужно.
Веб-приложения Cockpit, Tasklist и Admin
-
Скачайте WAR-файл
openbpm-engine-webapp-tomcat-$PLATFORM_VERSION.war(артефактio.openbpm.bpm.webapp:openbpm-engine-webapp-tomcat) из репозитория артефактов. -
Скопируйте его в
$TOMCAT_HOME/webapps/openbpm-engine.war. Можно выбрать другое имя: оно задаёт путь приложения. -
Запустите Tomcat.
-
Откройте http://localhost:8080/openbpm-engine (или путь, соответствующий имени файла).
REST API
-
Скачайте WAR-файл
openbpm-engine-rest-$PLATFORM_VERSION-tomcat.war(артефактio.openbpm.bpm:openbpm-engine-rest, классификаторtomcat) из репозитория артефактов. -
Скопируйте его в
$TOMCAT_HOME/webapps/engine-rest.war. Имя файла задаёт путь приложения. -
Запустите Tomcat.
-
Проверьте работу: http://localhost:8080/engine-rest/engine возвращает список процессных движков.
-
Включите аутентификацию, как описано в разделе Аутентификация REST API.
Connect
Библиотеки из $DISTRIBUTION_LIB:
-
openbpm-engine-connect-core-$PLATFORM_VERSION.jar -
openbpm-engine-connect-connectors-all-$PLATFORM_VERSION.jar -
openbpm-engine-plugin-connect-$PLATFORM_VERSION.jar -
openbpm-engine-commons-utils-$PLATFORM_VERSION.jar
Зарегистрируйте плагин в $TOMCAT_HOME/conf/bpm-platform.xml:
<bpm-platform ...>
<process-engine name="default">
...
<plugins>
... другие плагины ...
<plugin>
<class>io.openbpm.connect.plugin.impl.ConnectProcessEnginePlugin</class>
</plugin>
</plugins>
</process-engine>
</bpm-platform>
Spin
Библиотеки из $DISTRIBUTION_LIB:
-
openbpm-engine-spin-core-$PLATFORM_VERSION.jar -
openbpm-engine-spin-dataformat-all-$PLATFORM_VERSION.jar -
openbpm-engine-plugin-spin-$PLATFORM_VERSION.jar -
openbpm-engine-commons-utils-$PLATFORM_VERSION.jar
Зарегистрируйте плагин в $TOMCAT_HOME/conf/bpm-platform.xml:
<bpm-platform ...>
<process-engine name="default">
...
<plugins>
... другие плагины ...
<plugin>
<class>io.openbpm.spin.plugin.impl.SpinProcessEnginePlugin</class>
</plugin>
</plugins>
</process-engine>
</bpm-platform>
Groovy
Библиотеки из $DISTRIBUTION_LIB:
-
groovy-$GROOVY_VERSION.jar -
groovy-jsr223-$GROOVY_VERSION.jar -
groovy-json-$GROOVY_VERSION.jar -
groovy-xml-$GROOVY_VERSION.jar -
groovy-templates-$GROOVY_VERSION.jar -
groovy-dateutil-$GROOVY_VERSION.jar -
groovy-datetime-$GROOVY_VERSION.jar
Документация создана на основе Camunda 7 Docs (Camunda, docs.camunda.org) и распространяется по лицензии Creative Commons Attribution-ShareAlike 3.0 Unported.