• Mysql8.0.17版本不能自动创建activiti表的坑


    maven项目如下:

    配置好数据库,和activiti的配置之后,开始执行流程部署

    package com.yuanqiao.first_activiti.deployment;
    
    import java.util.List;
    
    import org.activiti.engine.ProcessEngine;
    import org.activiti.engine.ProcessEngines;
    import org.activiti.engine.RepositoryService;
    import org.activiti.engine.repository.Deployment;
    import org.activiti.engine.repository.DeploymentBuilder;
    import org.activiti.engine.repository.ProcessDefinition;
    import org.junit.Test;
    
    import com.google.gson.Gson;
    
    /**
     * 通过读取bpmn文件,来部署流程图
     * 
     * @author yuanqiao
     *
     */
    public class DeploymentProcess {
    
    	@Test
    	public void deploymentFirstProcess() {
    		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    
    		RepositoryService repositoryService = processEngine.getRepositoryService();
    
    		DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().addClasspathResource("first.bpmn");
    
    		Deployment deployment = deploymentBuilder.deploy();
    		String deploymentId = deployment.getId();
    		System.out.println(deploymentId);
    		List<ProcessDefinition> processDefinitionList = repositoryService.createProcessDefinitionQuery()
    				.deploymentId(deploymentId).list();
    		Gson gson = new Gson();
    		System.out.println(gson.toJson(processDefinitionList));
    
    	}
    }
    

      

    报错如下:

    [main] ERROR org.activiti.engine.impl.interceptor.CommandContext - Error while closing command context
    org.apache.ibatis.exceptions.PersistenceException: 
    ### Error querying database.  Cause: java.sql.SQLSyntaxErrorException: Table 'activiti.act_ge_property' doesn't exist
    ### The error may exist in org/activiti/db/mapping/entity/Property.xml
    ### The error may involve org.activiti.engine.impl.persistence.entity.PropertyEntityImpl.selectProperty-Inline
    ### The error occurred while setting parameters
    ### SQL: select * from ACT_GE_PROPERTY where NAME_ = ?
    ### Cause: java.sql.SQLSyntaxErrorException: Table 'activiti.act_ge_property' doesn't exist
    	at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
    	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:150)
    	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)
    	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:77)
    	at org.activiti.engine.impl.db.DbSqlSession.selectById(DbSqlSession.java:364)
    	at org.activiti.engine.impl.db.DbSqlSession.selectById(DbSqlSession.java:348)
    	at org.activiti.engine.impl.db.DbSqlSession.dbSchemaUpdate(DbSqlSession.java:910)
    	at org.activiti.engine.impl.db.DbSqlSession.performSchemaOperationsProcessEngineBuild(DbSqlSession.java:1318)
    	at org.activiti.engine.impl.SchemaOperationsProcessEngineBuild.execute(SchemaOperationsProcessEngineBuild.java:28)
    	at org.activiti.engine.impl.interceptor.CommandInvoker$1.run(CommandInvoker.java:37)
    	at org.activiti.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:78)
    	at org.activiti.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:57)
    	at org.activiti.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:42)
    	at org.activiti.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:48)
    	at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:63)
    	at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:29)
    	at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:44)
    	at org.activiti.engine.impl.ProcessEngineImpl.<init>(ProcessEngineImpl.java:81)
    	at org.activiti.engine.impl.cfg.ProcessEngineConfigurationImpl.buildProcessEngine(ProcessEngineConfigurationImpl.java:665)
    	at org.activiti.engine.ProcessEngines.buildProcessEngine(ProcessEngines.java:189)
    	at org.activiti.engine.ProcessEngines.initProcessEngineFromResource(ProcessEngines.java:162)
    	at org.activiti.engine.ProcessEngines.init(ProcessEngines.java:94)
    	at org.activiti.engine.ProcessEngines.getProcessEngine(ProcessEngines.java:223)
    	at org.activiti.engine.ProcessEngines.getDefaultProcessEngine(ProcessEngines.java:212)
    	at com.yuanqiao.first_activiti.deployment.DeploymentProcess.deploymentFirstProcess(DeploymentProcess.java:25)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    

    解决方法:

    (1)把mysql8.0的版本改成5.0的

    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.41</version>
    </dependency> 

    (2)修改驱动:

    com.mysql.jdbc.Driver


    参考文档
    https://www.cnblogs.com/shanshen/p/9054173.html

    从源码分析问题:
    https://blog.csdn.net/jiaoshaoping/article/details/80748065

      

  • 相关阅读:
    SourceInsight中文字体
    Android Studio导入第三方类库的方法
    Unable to create Debug Bridge:Unable to start adb server:error:cannot parse version
    match_parent 、 fill_parent 、 wrap_content
    android:textAppearance
    AndroidManifest配置之uses-sdk
    从Github上下载了项目,导入Android Studio,gradle 报错,应该怎么修改
    Android Studio 使用Gradle多渠道打包
    Android Studio常用快捷键
    在一个form表单中根据不同按钮实现多个action事件
  • 原文地址:https://www.cnblogs.com/mkl34367803/p/11570131.html
Copyright © 2020-2023  润新知