Activiti ServiceTask不能使用Spring 的bean问题
2015-02-27 13:36
495 查看
参考网址:https://groups.google.com/forum/#!topic/camunda-bpm-users/M7K3KXiEHaA
问题描述:
java类实现 activiti提供的JavaDelegate接口时,获取不到spring给我们加载的bean类,会报 java.lang.NullPointerException;
解决如下:
当使用 activiti:class 把一个class指定给ServiceTask时,需要实现JavaDelegate接口,activiti引擎将会在内部用Class.newInstance(..)方法创建一个该类的对象,这个对象并不spring容器管理,所以无法获取spring容器给我们生成的bean;
所以我们只能换一种方式来实现 serviceTask的功能,serviceTask还有两个属性:activiti:expression和activiti:delegateExpression
activiti:expression="${retrieveCustomerServiceTask.retrieveCustomer(execution,customerId)}":会调用retrieveCustomerServiceTask的 retrieveCustomer(execution,customerId)方法,参数execution和JavaDelagate 中的方法execute(DelegateExecution execution )参数一样,参数customerId是自定义的。在这个方法中就可以使用spring为我们提供的bean了。(亲测好用)
顺便提一下 activiti:delegateExpression="${customerServiceTask}" 将会执行实现了JavaDelegate的类的execute(DelegateExecution execution )方法。(未亲测)
问题描述:
java类实现 activiti提供的JavaDelegate接口时,获取不到spring给我们加载的bean类,会报 java.lang.NullPointerException;
解决如下:
当使用 activiti:class 把一个class指定给ServiceTask时,需要实现JavaDelegate接口,activiti引擎将会在内部用Class.newInstance(..)方法创建一个该类的对象,这个对象并不spring容器管理,所以无法获取spring容器给我们生成的bean;
所以我们只能换一种方式来实现 serviceTask的功能,serviceTask还有两个属性:activiti:expression和activiti:delegateExpression
activiti:expression="${retrieveCustomerServiceTask.retrieveCustomer(execution,customerId)}":会调用retrieveCustomerServiceTask的 retrieveCustomer(execution,customerId)方法,参数execution和JavaDelagate 中的方法execute(DelegateExecution execution )参数一样,参数customerId是自定义的。在这个方法中就可以使用spring为我们提供的bean了。(亲测好用)
顺便提一下 activiti:delegateExpression="${customerServiceTask}" 将会执行实现了JavaDelegate的类的execute(DelegateExecution execution )方法。(未亲测)
相关文章推荐
- Activiti的servicetask 调用Spring中Bean
- 在Listener(监听器)定时启动的TimerTask(定时任务)中使用Spring@Service注解的bean
- SpringBoot Activiti6.0 使用SharedExecutorServiceAsyncExecutor无法触发timer job 超时的问题
- Spring关于使用注解@Configuration去配置FormattingConversionServiceFactoryBean来实现自定义格式字符串处理无效的问题(未找到是什么原因造成的)
- springboot websocket 解决不能注入bean问题
- Spring定时任务的实现方式--ScheduledExecutorService and ScheduledExecutorFactoryBean的简单源码解析以及使用
- spring注解与xml同时使用:bean命名问题及冲突
- 在普通Java类里使用spring配置文件里的bean类如dao,service
- spring注解与xml同时使用:bean命名问题及冲突
- 解决spring国际化不能实例化bean的问题
- 使用spring-session同时用session范围bean的问题
- Spring 自定义属性编辑(CustomEditorConfigurer)和类型转换器(ConversionServiceFactoryBean)一起配置问题
- hessian 在spring中的使用 (bean 如 Dao无法注入的问题)
- @resource或@Autowired Service service不能通过spring注入问题
- hessian 在spring中的使用 (bean 如 Dao无法注入的问题)
- spring3使用task注记及task:annotation-driven解决定时问题
- 使用Spring的RmiServiceExporter发布RMI服务设置registryHost报Connection refused to host问题解决
- Spring中使用内部Bean关联多个Bean,不能被外部Bean关联
- 笔记有关在spring使用aop在实现service层时出现的问题