java后端

布衣一身轻 发布于 2018/10/29 15:13
阅读 185
收藏 0

运行一个项目时,报连接不到数据池

1、jdbc.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/demowork?useUnicode=true&characterEncoding=UTF-8
user=root
password=
initialSize=0
maxActive=50
maxIdle=8
minIdle=0
maxWait=-1
removeAbandoned=true
removeAbandonedTimeout=180

2、applictionContext.xml配置

 <!-- 读取数据库配置文件 -->
    <context:property-placeholder location="classpath:jdbc.properties"/>
      <!-- 阿里 druid数据库连接池 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">  
         <!-- 数据库基本信息配置 -->
         <property name="driverClassName" value="${driver}" />
         <property name="url" value="${url}" />  
         <property name="username" value="${user}" />  
         <property name="password" value="${password}" />  
         
        <!-- 数据库连接池初始化链接时第一次要创建的连接个数,默认为0 -->
        <property name="initialSize" value="${initialSize}"/>
        <!-- 定义连接池中同时连接的最大连接数,默认连接数为8 -->
        <property name="maxActive" value="${maxActive}"/>
        <!-- 定义连接池可允许的最大空闲连接数,默认连接数为8 -->
        <property name="maxIdle" value="${maxIdle}"/>
        <!-- 定义连接池可允许的最大空闲连接数,默认连接数为0 -->        
        <property name="minIdle" value="${minIdle}"/>
        <!-- 定义最大等待时间。单位为ms -->
        <property name="maxWait" value="${maxWait}"/>
        <!-- 告诉连接池是否开启无用连接回收的机制,默认为false,这里改为true -->
        <property name="removeAbandoned" value="${removeAbandoned}"/>
        <!-- 控制连接词在超出配置时间后回收没有用的连接,默认为300秒 -->
        <property name="removeAbandonedTimeout" value="${removeAbandonedTimeout}"/>
        <!-- SQL心跳 -->
        <!-- 定义开启Evict的定时校验(循环校验) -->
        <property name="testWhileIdle" value="true"/>
        <!-- 定义进行borrowObject处理时,对拿到的连接是否进行校验 -->
        <property name="testOnBorrow" value="false"/>
        <!--定义进行returnObject处理时,对拿到的连接是否进行校验  -->
        <property name="testOnReturn" value="false"/>
        <!-- 定义校验使用的SQL语句,跟MySQL简单通信下,校验连接是否有效 -->
        <property name="validationQuery" value="select 1"/>
        <!-- 定义Evict的时间间隔,单位为毫秒,此处设置为6000,即一分钟,这个值大于0才会开启Evict -->
        <property name="timeBetweenEvictionRunsMillis" value="60000"/>
        <!-- 定义每次校验连接的数量,一般情况下和maxAction大小一样 -->
        <property name="numTestsPerEvictionRun" value="${maxActive}"/>
    </bean>  

3、报错err

严重: Exception sending context initialized event to listener instance of class [org.springframework.web.context.ContextLoaderListener]
org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.alibaba.druid.pool.DruidDataSource] for bean with name 'dataSource' defined in class path resource [applicationContext.xml]; nested exception is java.lang.ClassNotFoundException: com.alibaba.druid.pool.DruidDataSource
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1278)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:575)
    at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1347)
    at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:913)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:617)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:934)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
    at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:410)
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4792)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5256)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1420)
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1410)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: com.alibaba.druid.pool.DruidDataSource
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1309)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1137)
    at org.springframework.util.ClassUtils.forName(ClassUtils.java:265)
    at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:419)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1299)
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1270)
    ... 18 more

4、大神帮我看下,谢谢了。

加载中
0
码农N号

ClassNotFoundException  标准缺包报错

0
爱吃猫的鱼0313
爱吃猫的鱼0313

初始化包异常

0
星汉
星汉

要么你的 <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">  这句里面的class值写错了,要么就是缺包。

返回顶部
顶部