Cannot create PoolableConnectionFactory (Communications link failure The last packet sent successfu

Posted kret123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Cannot create PoolableConnectionFactory (Communications link failure The last packet sent successfu相关的知识,希望对你有一定的参考价值。

使用数据库数据源的web 项目,发布后,访问数据库500报错:

浏览器端:

技术分享图片

 

 

控制台:

技术分享图片

数据库连接池在不启动Tomcat的情况下,测试类通过,没有问题。

一旦在服务器发布,就会出现问题,考虑是Tomcat的连接池配置除了问题。

错误提示是:找不到jdbc驱动,但是提示信息里的class值为null,所以,应该是Tomcat没有找到驱动

1、检查是否有jar包:存在,没有问题。

2、检查jar包位置:是在src 下。后来转移到web下,还是没效果。网上资料说:在tomcat6.0中设置jdbc数据源时,jdbc驱动要放在TOMCAT_HOME/lib目录下,绝不能放在web-inf/lib/下面:否则tomcat就会报错说找不到驱动。eclipse中的webcontent是虚拟路径。

3、配置文件:缺失。

 

解决方案:

增加了配置文件:

content.xml

技术分享图片
 1 <Context>
 2     <Resource 
 3     auth="Container"
 4     driverClassName="com.mysql.jdbc.Driver"
 5     maxActive="100"
 6     maxIdle="40"
 7     maxWait="4000"
 8     name="jdbc/fish"
 9     username="root"
10     password="root"
11     type="javax.sql.DataSource"
12     url="jdbc:mysql://localhost:3306/fish?useUnicode=true&amp;characterEncoding=UTF-8"
13     />         
14 </Context>
技术分享图片

运行成功。

 

 

 

 

转载 关于Tomcat6 的数据源配置:

tomcat6.0 数据库连接池配置问题:

    连接池配好后,启动tomat后,输入项目系统的登录名和密码,报

Cannot create JDBC driver of class ‘‘ for connect URL ‘null‘ 错误。

经检查,发现是连接池没有配好。

    现把连接池配置步骤重新整理一遍。(以ORACLE为例)

   1.在tomcat的lib目录下放入数据库驱动。ORACLE的驱动为ojdbc14.jar。

   2.修改tomcat目录下的conf目录下的server.xml文件。

      在<Host></Host>节点内,增加如下代码

Xml代码  技术分享图片
  1. <Context path="/testApp" docBase="testApp" debug="1" reloadable="flase" crossContext="true">  
  2.         <Resource name="jdbc/devDS" type="javax.sql.DataSource" password="shxt" driverClassName="oracle.jdbc.driver.OracleDriver" maxIdle="2" maxWait="5000" username="shxt" url="jdbc:oracle:thin:@192.168.0.133:1521:testApp" maxActive="100"/>  
  3. </Context>    

   3.在tomcat目录下的conf目录下的Catalina目录下的localhost目录(如果你server.xml文件中HOST节点的name是localhost)下,增加testApp.xml文件。文件内容如下:

Xml代码  技术分享图片
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <Context antiResourceLocking="false" privileged="true" useHttpOnly="true" >  
  3.     <ResourceLink name="jdbc/devDS" global="jdbc/devDS" type="javax.sql.DataSource"/>  
  4.   
  5. </Context>  

   以上为tomcat的配置完成,下面为项目配置的修改。

   4.修改项目目录下的web.xml文件。增加jndi信息

Xml代码  技术分享图片
  1. <!-- 数据库JNDI -->  
  2.     <resource-ref>  
  3.         <description>DB Connection</description>  
  4.         <res-ref-name>jdbc/devDS</res-ref-name>  
  5.         <res-type>javax.sql.DataSource</res-type>  
  6.         <res-auth>Container</res-auth>  
  7.     </resource-ref>  

   5.修改hibernate.cfg.xml信息(如果使用了hibernate)

  

Xml代码  技术分享图片
  1. <property name="connection.datasource">java:comp/env/jdbc/devDS</property>  

  到此,tomcat6的连接池配置信息全部完成。

  再登录项目,上面的那个错误就不再出现。

以上是关于Cannot create PoolableConnectionFactory (Communications link failure The last packet sent successfu的主要内容,如果未能解决你的问题,请参考以下文章

cannot create directory linux 中mkdir时候出现的问题解决

Activiti启报错: Cannot create PoolableConnectionFactory (Could not create connection to database server

Wordpress API - JWT Auth - Rest_cannot_create - 抱歉,您不能以此用户身份创建帖子

cannot create windows service for mysql

phoenix SQLNestedException: Cannot create PoolableConnectionFactory

Zabbix agent启动报错:cannot create semaphore set