最近接触了activiti工作流,自学过程中遇到的许多问题,特此记录总结整理,其中就有ProcessEngine抛空指针异常,而关于此问题收集了网上的资料加以整理:
1:可能在activity-context.xml文件里面,没有设置自动资源部署(Automatic resource deploy)
<property name="deploymentResources" value="classpath:hello.bpmn" />即为自动资源部署,这样才能实例化ProcessEngine。
2:命名问题,在ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine()中getDefaultProcessEngine()的源码中可以看到是获取
这两个资源文件,所以你的资源文件命名要和上面这两个其中一个对应上。
3:ProcessEngine processEngine = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml").buildProcessEngine();用这种方式试下
4:activiti.cfg.xml为这个文件应该放在classpath目录下吧,你试试将这个文件放在src目录下,再运行,估计是 ProcessEngines.getDefaultProcessEngine()没找到该文件。
5:(比较大的可能性),版本不对应
这里的数据都是自动生成的,可能是版本不对应导致引擎获取不到,最简单的办法就是重新建表,创建流程引擎,当然不能的话重新创建表的话,重新创建流程引擎或者更改这里的版本(需谨慎)。