Я вытащил последний образ Camunda и запустил Camunda в собственном докер-контейнере. У меня есть dmn, загруженный в Camunda Cockpit, и я могу выполнять вызовы Rest, чтобы получить данные из таблицы решений, которую я загрузил в Camunda Cockpit. Однако я не хочу полагаться на то, что Камунда будет бегать самостоятельно. У меня есть огромное приложение (микросервис, работающий в собственном докер-контейнере), и я хочу встроить Camunda в свой микросервис (который использует Osgi, Java, Docker, Maven и т. Д.). Может ли кто-нибудь помочь мне с этим?
Встраивание Camunda в существующее приложение Java
Ответы (1)
Для микросервиса Spring Boot вы можете добавить необходимые файлы запуска и конфигурации в свое развертывание, и все будет в порядке. См., Например, https://start.camunda.com/, чтобы получить все необходимое. Затем вы можете получить доступ к Camunda через Java API или REST (если был включен стартер).
Если вы не работаете в среде Spring Boot, то способ начальной загрузки Camunda может отличаться. На простом Java, без использования контейнера, это было бы примерно так:
ProcessEngine processEngine = ProcessEngineConfiguration
.createStandaloneProcessEngineConfiguration()
.setJdbcUrl("jdbc:h2:./camunda-db/process-engine;DB_CLOSE_DELAY=1000")
.setDatabaseSchemaUpdate("true")
.setJobExecutorActivate(true)
.buildProcessEngine();
processEngine.getRepositoryService()
.createDeployment()
.addClasspathResource("myProcess.bpmn")
.deploy();
ProcessInstance pi = processEngine.getRuntimeService()
.startProcessInstanceByKey("myProcess");
В стандартной среде Spring вы бы загрузили движок, загрузив контекст:
ClassPathXmlApplicationContext applicationContext =
new ClassPathXmlApplicationContext("/spring-context.xml");
ProcessEngine processEngine = (ProcessEngine) applicationContext.getBean("processEngine");
processEngine.getRepositoryService()
.createDeployment()
.addClasspathResource("myProcess.bpmn")
.deploy();
См. Также: https://docs.camunda.org/manual/latest/user-guide/process-engine/process-engine-bootstrapping/
https://docs.camunda.org/get-started/quick-start/install/
Обновление на основе комментария:
Поддержка Camunda OSGI описана здесь: https://github.com/camunda/camunda-bpm-platform-osgi
Вам нужно будет обновить проект до более новой версии, что, вероятно, не потребует больших усилий, поскольку версия осталась совместимой.
(Я бы также посоветовал вам вместо этого подумать о переносе микросервиса на Spring Boot. Сложность, доступные знания на рынке, срок поддержки и т. Д.)