有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java向Camunda BPM Run Docker添加Spring事件侦听器

我想做一些由Camunda流程实例状态更改触发的工作,因此为Camunda编写了一个Spring注释驱动的事件监听器

我已经把它打包成一个JAR文件:代码和pom.xml在Gist here

我已经编写了一个Dockerfile,它扩展了camunda/camunda-bpm-platform:run-7.14.0,并将生成的JAR插入/camunda/configuration/userlib

根据^{,这肯定是在Spring引导加载程序路径中:

10 camunda   0:31 java -Dloader.path=/camunda/internal/webapps/,/camunda/internal/rest/,/camunda/configuration/userlib/,/camunda/configuration/keystore/ -Dcamunda.deploymentDir=/camunda/configuration/resources -jar /camunda/internal/camunda-bpm-run-core.jar --spring.config.location=file:/camunda/configuration/default.yml

在查看日志时,卡蒙达肯定在举办春季活动:

o.c.b.s.b.s.event.EventPublisherPlugin   : EVENTING-001: Initialized Camunda Spring Boot Eventing Engine Plugin.
o.c.b.s.b.s.event.EventPublisherPlugin   : EVENTING-003: Task events will be published as Spring Events.
o.c.b.s.b.s.event.EventPublisherPlugin   : EVENTING-005: Execution events will be published as Spring Events.
o.c.b.s.b.s.event.EventPublisherPlugin   : EVENTING-007: History events will be published as Spring events.

但我没有看到我的日志消息

这让我怀疑,仅仅在加载程序上放一个罐子并不足以让Spring Boot找到侦听器——但我不知道我还缺少什么

任何帮助都将不胜感激。谢谢


共 (1) 个答案

  1. # 1 楼答案

    好吧,我意识到我做错了什么。我错误地认为,类路径上的任何JAR文件都会自动初始化它们的类,这反过来意味着Spring会注意到@Component@EventListener注释,然后。。。做一些魔术来增加听众。事实并非如此

    我现在明白,正确的做法是使用Camunda Initializer构建一个全新的Spring Boot应用程序,其中包括我的侦听器,然后使用Docker。这就是我的前进之路