当前位置: 首页 > 知识库问答 >
问题:

从camunda UserTask钩子事件

萧飞
2023-03-14

我想像本文所描述的那样从UserTask中挂钩事件:https://docs.camunda.org/manual/latest/user-guide/spring-boot-integration/the-spring-event-bridge/

我的听众:

@Component
@Slf4j
public class MyListener {
    public MyListener() {
        log.debug("[MyListener] create");
    }

    @EventListener
    public void onTaskEvent(DelegateTask taskDelegate) {
        log.debug("[DelegateTask] id" + taskDelegate.getId());
    }

    @EventListener
    public void onTaskEvent(TaskEvent taskEvent) {
        log.debug("[TaskEvent] id" + taskEvent.getId());
    }
}

我添加了属性:

camunda.bpm.eventing.execution=true
camunda.bpm.eventing.history=true
camunda.bpm.eventing.task=true
    <dependency>
        <groupId>org.camunda.bpm.springboot</groupId>
        <artifactId>camunda-bpm-spring-boot-starter</artifactId>
        <version>${camunda.spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
        <version>${springboot.version}</version>
    </dependency>
    ....
    and other

谢了。

共有1个答案

乐正峰
2023-03-14

>

  • 您是否检查了Spring类路径扫描是否正确地拾取并注册了@component?如果监听器实现不小心没有放在Spring Boot Application类下面的包层次结构中,那么它将不会自动注册。

    你是怎么测试的?Spring组件只有在运行SpringBootTest时才会被选中。使用@Rule ProcessEngineRule的普通Java测试是不够的。

    如果正确地检测到组件(并且正确地发布了新属性),那么您应该能够观察到@EventListener方法被调用(例如,设置一个断点,并检查调试器是否在此停止)。

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

  •  类似资料:
    • 我想使用wordpress在我的网站上添加变体 我尝试了很多插件,但它们不能满足我的要求。 要求: 我想根据给定的变化变化价格: 任何人都可以引用插件或函数?

    • 钩子列表 全局钩子 名称 描述 init 在生成文档站点前触发. nav 在解析导航 nav.md 后和解析文档前触发 book:before 加载 book 页面之前调用 page:before 加载 page 文件之前调用 page 加载 page 文件之后调用 book 加载 book 页面之后调用 finish 在生成文档站点完成后触发. 模板钩子 名称 描述 参数 tpl:header

    • 后端 hookList 目前 hooksList 只有下面列出的部分,如果您有其他的需求,可提建议到 github 或者 qq 群 /** * 钩子配置 */ var hooks = { /** * 第三方sso登录钩子,暂只支持设置一个 * @param ctx * @return 必需返回一个 promise 对象,resolve({username:

    • CodeIgniter 的钩子功能使得您可以在不修改系统核心文件的基础上来改变或增加系统的核心运行功能。 当 CodeIgniter 运行后,它会产生出一个特殊的进程,这个进程在 项目流程 页面中有说明。 当然,您可以自定义一些动作来替代程序运行过程中的某些阶段。例如,您可以在控制器刚刚载入前或刚刚载入后来运行特定的脚本,或者在其他时刻来触发您的脚本。 启用钩子 钩子功能可以在全局范围内打开或关闭

    • 钩子是插件执行的触发器;插件就像挂在钩子上的东西; 插件只有实现相应钩子方法,并安装启用成功后才能执行; ThinkCMF系统内置了很多钩子;请查看后台插件钩子管理里; 开发者也可以用hook方法在控制器中加入钩子,让你的应用具有更好的扩展性; 同时也可以模板里加入钩子<hook name="footer_start"/>; 钩子也支持传入参数: <php>$param="test"</php>

    • 钩子是插件执行的触发器;插件就像挂在钩子上的东西; 插件只有实现相应钩子方法,并安装启用成功后才能执行; ThinkCMF系统内置了很多钩子;http://www.thinkcmf.com/document/hooks.html 开发者也可以用hook('test')方法在控制器只加入钩子,让你的应用具有更好的扩展性; 同时也可以模板里加入钩子{:hook('footer')}; 钩子也支持传入参