当前位置:网站首页>Error getting a new connection Cause: org. apache. commons. dbcp. SQLNestedException

Error getting a new connection Cause: org. apache. commons. dbcp. SQLNestedException

2022-07-06 06:22:00 Do not let it rot

Problem description

Use today Acitivity establish ProcessEngineConfiguration The object is wrong

Error is as follows

 Insert picture description here

 Insert picture description here

org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Could not create connection to database server.)
### Error getting a new connection. Cause: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Could not create connection to database server.)
### Cause: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Could not create connection to database server.)

To analyze problems

1 It could be mysql Version driven problems
2 There may be a configuration error
3 I tested and inquired about the relevant errors on the Internet , Most of the reasons are mysql Version problem or configuration error , such as url Exact parameters , drive 8.0 Less cj, I am because of the version problem , I'm a local 8.0 The database of , however jar yes 5.7 Of

solve the problem

The relevant code is as follows

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.wyh</groupId>
    <artifactId>Activiti01</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.0.RELEASE</version>
    </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <activiti.version>6.0.0</activiti.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-spring-boot-starter-rest-api</artifactId>
            <version>${
    activiti.version}</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.18</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

To configure

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
                    http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/contex
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">


    <!--dbcp Link pool -->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql:///activiti?serverTimezone=UTC"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
        <property name="maxActive" value="3"/>
        <property name="maxIdle" value="1"/>
    </bean>

    <!-- By default  bean Of id   Fixed for  processEngineConfiguration-->
    <bean id="processEngineConfiguration"
          class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
        <!-- Configuration database related information -->
        <!-- Database driven 
        <property name="jdbcDriver" value="com.mysql.jdbc.Driver"/>-->
        <!-- Database link 
        <property name="jdbcUrl" value="jdbc:mysql:///activiti"/>-->
        <!-- Database user name 
        <property name="jdbcUsername" value="root"/>-->
        <!-- Database password 
        <property name="jdbcPassword" value="123456"/>-->
        <!-- Directly reference the link pool configured above -->
        <property name="dataSource" ref="dataSource"/>
        <!--actviti Strategy of database table generation 
        true -  If the corresponding table already exists in the database , So use... Directly ,
                If it doesn't exist , So it will create -->
        <property name="databaseSchemaUpdate" value="true"/>
    </bean>
</beans>

Test class

package com.wyh.test;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.junit.Test;

/** * @program: Activiti01 * @description: * @author:  Wei Yihe  * @createDate: 2022-06-22 21:59 **/

public class TestCreateTable {
    
    /** *  Use activiti Provides the default way to create mysql Table of  */
    @Test
    public void testCreateDbTable(){
    
        //  Need to use avtiviti Tool class provided  ProcessEngines , Usage method getDefaultProcessEngine
        // getDefaultProcessEngine Will default from resources The next read name is actviti.cfg.xml The file of 
        //  establish processEngine when , Will be created mysql Table of 
        ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
        System.out.println(processEngine);
    }

}

Start the test again after modification

You can see that the log information is already creating tables
 Insert picture description here
view the database The table has been created normally
 Insert picture description here

原网站

版权声明
本文为[Do not let it rot]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/187/202207060618557721.html