java - 如何在 Activiti JavaDelegate 任务中访问 Spring Beans

标签 java spring activiti business-process-management

我正在使用 activiti 5.16.1 在我的项目中启用工作流。

我有一个 spring bean,它执行业务任务,例如从数据库中为给定 ID 填充数据。

当我尝试在 JavaDelegate 任务中使用这些 bean 时,这些 bean 没有被填充。

@Component
public class ServiceClassDelegateSample implements JavaDelegate {

    @Autowired
    private SampleService sampleService;

    @Override
    public void execute(DelegateExecution delegateExecution) throws Exception {

        sampleService.doSomeTask();
    }

}

但是 sampleService 始终设置为 null。

您知道如何在 JavaDelegate 任务中使用 spring bean 吗?

有类似问题here没有任何合适的解决方案,我希望在新版本的 Activiti 中有更好的方法。

最佳答案

如果我没记错的话,是Activiti中的某种故障,不过你更换一下就可以轻松解决了

<serviceTask id="servicetask" name="Service Task" activiti:class="some.class.path.ServiceClassDelegateSample"></serviceTask>

使用委托(delegate)表达式;

<serviceTask id="serviceTask" activiti:delegateExpression="${serviceClassDelegateSample}"></serviceTask>

其中 serviceClassDelegateSample 是您的 bean 的名称。

但我不知道为什么第一种方式不起作用。

关于java - 如何在 Activiti JavaDelegate 任务中访问 Spring Beans,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25894248/

相关文章:

java - 如何在服务器端存储邮件密码?

spring-boot - 如何禁用 activiti REST HTTP

Java 静态导入导致编译错误。可能的编译器错误?

java - Java 中有没有一种方法可以增量更改类名?

java - 如果不为空或为 null,则加入逗号

java - 如何检索父接口(interface)的实现类/接口(interface)?

java - 包含调试代码的最佳方式?

java - 在 Spring 中为 Controller 操作生成 URL

alfresco - 如何使用规则(包括文档)启动 Alfresco 工作流程

database - Alfresco activiti 错误太长,类型字符不同(255)ACT_HI_TASKINST