activiti监听器使用本地service如何设置
来源:7-6 BPMN2.0流程任务-用户任务-2
慕码人5437048
2020-04-19
老师,actviti的监听器MyTaskListener如果需要使用本地的service如何设置?直接引用好像不行,我使用了添加SpringUtil方法,但启动还是报错
@Component
public class SpringUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.setApplicationContext(applicationContext);
}
public static <T> T getObject(Class<T> clazz){
return applicationContext.getBean(clazz);
}
}@Component
public class SecretTaskListener implements TaskListener {
ProcessBusiFreeService processBusiFreeService = SpringUtil.getObject(ProcessBusiFreeService.class);
@Override
public void notify(DelegateTask delegateTask) {
String eventName = delegateTask.getEventName();
if (StringUtils.equals("complete",eventName)){
String processInstanceId = delegateTask.getProcessInstanceId();
int id = processBusiFreeService.selectByInstanceId(processInstanceId).getId();
ProBusinessfreeSub proBusinessfreeSub = new ProBusinessfreeSub();
proBusinessfreeSub.setId(id);
proBusinessfreeSub.setEndTime(new Date());
processBusiFreeService.update(proBusinessfreeSub);
}
}
}Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2020-04-19 14:34:34.714 ERROR 6732 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'secretTaskListener' defined in file [D:\maven\oa-electric\target\classes\com\oa\oaelectric\listener\SecretTaskListener.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.oa.oaelectric.listener.SecretTaskListener]: Constructor threw exception; nested exception is java.lang.NullPointerException at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1270) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1164) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:538) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:846) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:863) ~[spring-context-5.1.4.RELEASE.jar:5.1.4.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546) ~[spring-context-5.1.4.RELEASE.jar:5.1.4.RELEASE] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142) ~[spring-boot-2.1.3.RELEASE.jar:2.1.3.RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775) [spring-boot-2.1.3.RELEASE.jar:2.1.3.RELEASE] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397) [spring-boot-2.1.3.RELEASE.jar:2.1.3.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:316) [spring-boot-2.1.3.RELEASE.jar:2.1.3.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260) [spring-boot-2.1.3.RELEASE.jar:2.1.3.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248) [spring-boot-2.1.3.RELEASE.jar:2.1.3.RELEASE] at com.oa.oaelectric.OaElectricApplication.main(OaElectricApplication.java:26) [classes/:na] Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.oa.oaelectric.listener.SecretTaskListener]: Constructor threw exception; nested exception is java.lang.NullPointerException at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:184) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE] at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:87) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1262) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE] ... 17 common frames omitted Caused by: java.lang.NullPointerException: null at com.oa.oaelectric.listener.SpringUtil.getObject(SpringUtil.java:21) ~[classes/:na] at com.oa.oaelectric.listener.SecretTaskListener.<init>(SecretTaskListener.java:17) ~[classes/:na] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_171] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_171] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_171] at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_171] at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:172) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE] ... 19 common frames omitted
写回答
1回答
-
通过异常日志,这里的空指针异常Caused by: java.lang.NullPointerException: null
at com.oa.oaelectric.listener.SpringUtil.getObject(SpringUtil.java:21)
是因为获取SecretTaskListener对象失败了,应该是SecretTaskListener实例没有在spring容器中管理,通过@Component
配置一下这个类在spring中管理起来00
相似问题