【问题标题】:Embedding Camunda into an existing Java application将 Camunda 嵌入到现有的 Java 应用程序中
【发布时间】:2020-11-17 17:42:41
【问题描述】:

我已经提取了 Camunda 的最新图像并在它自己的 docker 容器中运行 Camunda。我有一个 dmn 上传到 Camunda Cockpit,我可以进行 Rest 调用以从我上传到 Camunda Cockpit 的决策表中获取数据。 但是,我不想依赖 Camunda 独立运行。我有一个现有的巨大应用程序(一个在它自己的 docker 容器中运行的微服务),我想将 Camunda 嵌入到我的微服务中(使用 Osgi、Java、Docker、Maven 等)。 有人可以指导我吗?

【问题讨论】:

  • 您需要 BPMN 还是只需要 DMN 决策表?

标签: embed camunda


【解决方案1】:

对于 Spring Boot 微服务,您可以将所需的启动器和配置文件添加到您的部署中,并且应该很好。参见例如https://start.camunda.com/ 得到你需要的一切。 然后,您可以通过 Java API 或 REST(如果包含启动器)访问 Camunda。

如果你不在 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。复杂性、市场上可用的知识、支持生命周期......)

【讨论】:

  • 感谢您的回复。 micr-service 不是使用 spring-boot 而是使用 Osgi、Java、Docker、Maven 等。
  • 扩展答案。
猜你喜欢
  • 2011-11-22
  • 2014-07-10
  • 2022-07-08
  • 1970-01-01
  • 2021-08-31
  • 2023-03-18
相关资源
最近更新 更多