java—将spring事件侦听器添加到camunda bpm run docker

vd2z7a6w  于 2021-06-26  发布在  Java
关注(0)|答案(1)|浏览(539)

我想做一些由camunda进程示例状态更改触发的工作,因此为camunda编写了一个spring注解驱动的事件监听器。
我把它打包成一个jar文件:代码和 pom.xml 这里是要点。
我写了一个dockerfile camunda/camunda-bpm-platform:run-7.14.0 我把jar戳进 /camunda/configuration/userlib .
这肯定是在 Spring 启动加载程序的路径,根据 ps :

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

在查看日志时,卡蒙达肯定在启动 Spring 活动:

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.

但是我没有看到我的日志消息。
这让我怀疑,仅仅将一个jar放在加载程序上并不足以让spring boot找到侦听器——但我不知道还缺少什么。
任何帮助都将不胜感激。谢谢!

gjmwrych

gjmwrych1#

好吧,我意识到我做错了什么。我错误地认为类路径上的任何jar文件都会自动初始化它们的类,这反过来意味着spring会注意到 @Component 以及 @EventListener 然后。。。做一些魔术来增加听众。这不是真的。
我现在明白了正确的做法是使用camunda初始化器构建一个全新的spring启动应用程序,其中包含我的侦听器,然后使用docker来解决这个问题。所以这就是我前进的道路。

相关问题