Установка полного дистрибутива на сервер приложений Tomcat вручную
|
Этот раздел перенесён из документации Camunda 7 и в дальнейшем будет доработан с учётом особенностей OpenBPM Engine |
Этот раздел описывает, как установить OpenBPM Engine и его компоненты на чистый Apache Tomcat http://tomcat.apache.org/, если вы не можете использовать готовый дистрибутив Tomcat. Дополнительно скачайте дистрибутив OpenBPM Engine для Tomcat со страницы https://openbpm.ru/downloads, чтобы получить необходимые модули OpenBPM Engine.
|
Как читать это руководство
В этом руководстве мы используем ряд переменных для обозначения общих имён путей и констант:
|
|
Известные ограничения в Tomcat 10
==== Проблемы загрузки классов Weld В сценариях развёртывания с одним или несколькими приложениями процессов, содержащими управляемые бины, могут возникать проблемы загрузки классов, если библиотека WELD встроена непосредственно в папку Описанный выше обходной путь не гарантированно работает для случаев со ссылками на бины между развёртываниями WAR (WAR A ссылается на бин из WAR B). Следующие тестовые сценарии завершаются с ошибкой на Tomcat 10:
|
Настройка
Прежде чем установить компоненты OpenBPM Engine, необходимо выполнить ряд обязательных шагов настройки.
Создание схемы базы данных и таблиц
В конфигурации дистрибутива по умолчанию схема базы данных и все необходимые таблицы автоматически создаются в базе данных H2 при первом запуске движка. Если вы не хотите использовать базу данных H2, вам необходимо
-
Создать схему базы данных для OpenBPM Engine самостоятельно.
-
Установить схему базы данных, чтобы создать все необходимые таблицы и индексы по умолчанию, используя наше руководство по установке схемы базы данных.
Когда вы создаёте таблицы вручную, вам необходимо настроить движок на то, чтобы он не создавал таблицы при запуске, установив свойство databaseSchemaUpdate в false (или, в случае использования Oracle, в noop). В Tomcat это делается в файле bpm-platform.xml, расположенном в папке $TOMCAT_DISTRIBUTION\server\apache-tomcat-$VERSION\conf\.
Добавление слушателя инициализации сервера BPM
Добавьте запись io.openbpm.bpm.container.impl.tomcat.TomcatBpmPlatformBootstrap как слушателя перед GlobalResourcesLifecycleListener в вашем файле $TOMCAT_HOME/conf/server.xml. Этот класс отвечает за запуск и остановку OpenBPM при запуске и остановке Tomcat.
<Server port="8005" shutdown="SHUTDOWN">
...
<Listener className="io.openbpm.bpm.container.impl.tomcat.TomcatBpmPlatformBootstrap" />
...
Настройка JDBC-ресурса
Чтобы настроить JDBC-ресурс, вам необходимо отредактировать файл $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:./camunda-h2-dbs/process-engine;TRACE_LEVEL_FILE=0"
defaultTransactionIsolation="READ_COMMITTED"
username="sa"
password="sa"
maxActive="20"
minIdle="5"
maxIdle="20" />
</GlobalNamingResources>
</Server>
Дополнительную информацию о создании источников данных JDBC см. в документации вашей версии Tomcat: 11.0 https://tomcat.apache.org/tomcat-11.0-doc/jndi-datasource-examples-howto.html.
Добавление сервисов OpenBPM
Скопируйте следующие блоки из ${TOMCAT_DISTRIBUTION}/server/apache-tomcat-${TOMCAT_VERSION}/conf/server.xml
в ${TOMCAT_HOME}/conf/server.xml:
<Resource name="global/camunda-bpm-platform/process-engine/ProcessEngineService!io.openbpm.bpm.ProcessEngineService" auth="Container"
type="io.openbpm.bpm.ProcessEngineService"
description="Camunda Platform Process Engine Service"
factory="io.openbpm.bpm.container.impl.jndi.ProcessEngineServiceObjectFactory" />
<Resource name="global/camunda-bpm-platform/process-engine/ProcessApplicationService!io.openbpm.bpm.ProcessApplicationService" auth="Container"
type="io.openbpm.bpm.ProcessApplicationService"
description="Camunda Platform Process Application Service"
factory="io.openbpm.bpm.container.impl.jndi.ProcessApplicationServiceObjectFactory" />
Добавление необходимых библиотек
Скопируйте все библиотеки из папки $TOMCAT_DISTRIBUTION/lib/ в папку библиотек Tomcat $TOMCAT_HOME/lib:
Кроме того, вам необходимо объединить ваш соответствующий JDBC-драйвер в папку $TOMCAT_HOME/lib.
Добавление bpm-platform.xml
Вам необходимо добавить файл bpm-platform.xml в папку $TOMCAT_HOME/conf или, опционально, вы можете настроить его расположение с помощью некоторых доступных механизмов, см. Настройка расположения файла bpm-platform.xml:
<?xml version="1.0" encoding="UTF-8"?>
<bpm-platform xmlns="http://www.camunda.org/schema/1.0/BpmPlatform"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.camunda.org/schema/1.0/BpmPlatform http://www.camunda.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 (Security Howto) для вашей версии Tomcat: 11.0 https://tomcat.apache.org/tomcat-11.0-doc/security-howto.html.
В частности, перейдите в ${TOMCAT_HOME}/webapps/ и удалите каталоги
ROOT, docs, examples.adoc, manager и host-manager.
Опциональные компоненты
Этот раздел описывает, как установить опциональные зависимости OpenBPM Engine на сервер Tomcat. Ни одна из них не требуется для работы с основной платформой.
Cockpit, Tasklist и Admin
Для развёртывания приложений требуются следующие шаги:
-
Скачайте веб-приложение OpenBPM Engine, которое содержит оба приложения, из нашего репозитория артефактов http://nexus.openbpm.ru/. Для Tomcat 11 имя артефакта —
$PLATFORM_VERSION/camunda-webapp-tomcat-jakarta-$PLATFORM_VERSION.war. -
Скопируйте файл war в
$TOMCAT_HOME/webapps/camunda.war. Опционально вы можете назвать его иначе или извлечь его в папку, чтобы развернуть по другому контекстному пути. -
Запустите Tomcat.
-
Откройте Cockpit и Tasklist по адресам
/camunda/app/cockpitи/camunda/app/tasklistили по настроенному вами контекстному пути.
REST API
Для развёртывания REST API требуются следующие шаги:
-
Скачайте архив веб-приложения REST API из нашего репозитория артефактов http://nexus.openbpm.ru/. Для Tomcat 11 имя артефакта —
$PLATFORM_VERSION/camunda-engine-rest-jakarta-$PLATFORM_VERSION-tomcat.war. -
Скопируйте файл war в
$TOMCAT_HOME/webapps. Опционально вы можете переименовать его или извлечь его в папку, чтобы развернуть по определённому контексту, например/engine-rest. -
Запустите Tomcat.
-
Откройте REST API по настроенному вами контексту. Например, http://localhost:8080/engine-rest/engine должен вернуть имена всех движков платформы, при условии что вы развернули приложение в контексте
/engine-rest. -
Включите аутентификацию, как описано в документации REST API.
Плагин OpenBPM Connect
Добавьте следующие артефакты (если они отсутствуют) из папки $TOMCAT_DISTRIBUTION/lib/ в папку $TOMCAT_HOME/lib/:
-
camunda-engine-plugin-connect-$PLATFORM_VERSION.jar -
camunda-commons-utils-$PLATFORM_VERSION.jar
Чтобы активировать функциональность OpenBPM Connect для движка процессов, в $TOMCAT_HOME/conf/bpm-platform.xml необходимо зарегистрировать плагин движка процессов следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<bpm-platform ...>
<process-engine name="default">
...
<plugins>
... existing plugins ...
<plugin>
<class>io.openbpm.connect.plugin.impl.ConnectProcessEnginePlugin</class>
</plugin>
</plugins>
...
</process-engine>
</bpm-platform>
OpenBPM Spin
Добавьте следующие артефакты (если они отсутствуют) из папки $TOMCAT_DISTRIBUTION/lib/ в папку $TOMCAT_HOME/lib/:
-
camunda-spin-dataformat-all-$PLATFORM_VERSION.jar -
camunda-spin-core-$PLATFORM_VERSION.jar -
camunda-engine-plugin-spin-$PLATFORM_VERSION.jar -
camunda-commons-utils-$PLATFORM_VERSION.jar
Чтобы активировать функциональность OpenBPM Spin для движка процессов, в $TOMCAT_HOME/conf/bpm-platform.xml необходимо зарегистрировать плагин движка процессов следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<bpm-platform ...>
...
<process-engine name="default">
...
<plugins>
... existing plugins ...
<plugin>
<class>io.openbpm.spin.plugin.impl.SpinProcessEnginePlugin</class>
</plugin>
</plugins>
...
</process-engine>
...
</bpm-platform>
Groovy-скриптинг
Добавьте следующие артефакты (если они отсутствуют) из папки $TOMCAT_DISTRIBUTION/lib/ в папку $TOMCAT_HOME/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, находится под лицензией Creative Commons Attribution-ShareAlike 3.0 Unported License .
Оригинал документации: https://docs.camunda.org