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

我正在使用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>

用委托表达;

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

其中serviceClassDelegateSample是bean的名称.

但是为什么不能以第一种方式工作,我不知道.

上一篇:activiti基础教程03


下一篇:sql server 2008 express 安装的时提示“重启计算机失败"