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&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>节点内,增加如下代码
- <Context path="/testApp" docBase="testApp" debug="1" reloadable="flase" crossContext="true">
- <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"/>
- </Context>
3.在tomcat目录下的conf目录下的Catalina目录下的localhost目录(如果你server.xml文件中HOST节点的name是localhost)下,增加testApp.xml文件。文件内容如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <Context antiResourceLocking="false" privileged="true" useHttpOnly="true" >
- <ResourceLink name="jdbc/devDS" global="jdbc/devDS" type="javax.sql.DataSource"/>
- </Context>
以上为tomcat的配置完成,下面为项目配置的修改。
4.修改项目目录下的web.xml文件。增加jndi信息
- <!-- 数据库JNDI -->
- <resource-ref>
- <description>DB Connection</description>
- <res-ref-name>jdbc/devDS</res-ref-name>
- <res-type>javax.sql.DataSource</res-type>
- <res-auth>Container</res-auth>
- </resource-ref>
5.修改hibernate.cfg.xml信息(如果使用了hibernate)
- <property name="connection.datasource">java:comp/env/jdbc/devDS</property>
到此,tomcat6的连接池配置信息全部完成。
再登录项目,上面的那个错误就不再出现。
Cannot create PoolableConnectionFactory (Communications link failure The last packet sent successfu的更多相关文章
- 【错误】:Could not open JDBC Connection for transaction; nested exception is: Communications link failure;The last packet sent successfully to the server was 1 milliseconds ago
# #错误日志 2016-11-10 16:19:20,834 ERROR [org.quartz.core.JobRunShell] - Job DEFAULT.jobtask threw an u ...
- org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent succ
数据库 没有开启 连接失败 org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause ...
- Oozie时出现Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure?
不多说,直接上干货! 问题详情 [hadoop@bigdatamaster oozie--cdh5.5.4]$ bin/ooziedb.sh create -sqlfile oozie.sql -ru ...
- Communications link failure异常解决
一,异常现象 com.bill99.inf.ibatis.DBException: queryForList error::sqlId=orgOrderAssetsMapping.queryModel ...
- 解决Java程序连接mysql数据库出现CommunicationsException: Communications link failure错误的问题
一.背景 最近在家里捣鼓一个公司自己搭建的demo的时候,发现程序一启动就会出现CommunicationsException: Communications link failure错误,经过一番排 ...
- com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure 解决办法
09:00:30.307 [http-8080-6] ERROR org.hibernate.transaction.JDBCTransaction -JDBC begin failed com.my ...
- 异常解决:Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
异常描述 这个异常通常有如下信息: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failu ...
- MySql的Communications link failure解决办法
在使用JDBC连接mysql时可能会遇到以下错误: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications li ...
- Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
很长的报错,截取 ERROR c.a.d.p.DruidDataSource - discard connection com.mysql.jdbc.exceptions.jdbc4.Comm ...
随机推荐
- eclipse常用工具
Eclipse 保存文件时自动格式化代码 很多同学不知道Eclipse有个很有用的功能,就是自动格式源代码的功能,一般大家都是直接Ctrl+Shift+F手动格式化,多浪费时间. 其实Eclipse里 ...
- 《程序设计入门——C语言》翁恺老师 第二周编程练习记录
1 逆序的三位数(5分) 题目内容: 逆序的三位数: 程序每次读入一个正三位数,然后输出逆序的数字.注意,当输入的数字含有结尾的0时,输出不应带有前导的0.比如输入700,输出应该是7. 提示:用%1 ...
- Vue 插槽
插槽的概念: 插槽的关键字slot,默认情况下,组件中的模板会覆盖组件中的原始内容(即自定义标签对内部的内容会不显示),解决办法就是使用插槽. 组件的原始内容: 即在vue实例范围之内,因此可以调用实 ...
- linux下socket connect 阻塞方式 阻塞时间控制
同事今天问我,如何在linux下的c代码里面控制connect的阻塞时间.应用的背景是:linux下的c程序有两个目标IP需要connect,如果用阻塞方式,当其中一个IP不能连接的情况下,程序将阻塞 ...
- Python知识体系思维导图:
基础知识 数据类型 1.序列 2.字符串 3.列表和元组 4.字典和集合 循环 & 判断
- HashMap 的put方法
final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node<K,V>[] ta ...
- node作为中间层 —> 跨域请求java后台接口(使用http-proxy-middleware中间件)
情景:利用node的express 作为中间层,跨域调取java后台接口,由于java接口对session有判断,因此每次请求都必须在req的headers中需要带上cookie,否则接口报500错误 ...
- Linux磁盘故障案例
原因:由于另外一块磁盘不存在,但是配置文件/etc/fstab中又有挂载的配置,挂载出问题就导致这样的故障. 输入root密码进去 编辑/etc/fstab文件把箭头指向的这一行注释掉或者删除掉.然后 ...
- Adversarial Examples for Semantic Segmentation and Object Detection 阅读笔记
Adversarial Examples for Semantic Segmentation and Object Detection (语义分割和目标检测中的对抗样本) 作者:Cihang Xie, ...
- 第十六周翻译-SQL Server复制的阶梯:第1级 - SQL Server复制简介
SQL Server复制的阶梯:第1级 - SQL Server复制简介 作者:Sebastian Meine,2012年12月26日 翻译:赖慧芳 译文: 该系列 本文是Stairway系列的一部 ...