报错:java.lang.ClassCastException: org.activiti.image.impl.DefaultProcessDiagramGenerator cannot be cast to com.finapla.activiti.config.ICustomProcessDiagramGenerator
ICustomProcessDiagramGenerator diagramGenerator = (ICustomProcessDiagramGenerator) processEngine.getProcessEngineConfiguration().getProcessDiagramGenerator();
强制类型转换出问题,ICustomProcessDiagramGenerator的实现类继承了
DefaultProcessDiagramGenerator,也实现了
ProcessDiagramGenerator接口
最终发现,配置
SpringProcessEngineConfiguration时,没有设置ProcessDiagramGenerator属性,导致转换出现问题
@Bean
public SpringProcessEngineConfiguration springProcessEngineConfiguration() {
SpringProcessEngineConfiguration spec = new SpringProcessEngineConfiguration();
spec.setDataSource(dataSource);
spec.setTransactionManager(platformTransactionManager);
spec.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
// 解決工作流生成图片乱码问题
spec.setActivityFontName("宋体");
spec.setAnnotationFontName("宋体");
spec.setLabelFontName("宋体");
spec.setProcessDiagramGenerator(customProcessDiagramGenerator);
return spec;
}