使用数据库数据源的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

 <Context>
<Resource
auth="Container"
driverClassName="com.mysql.jdbc.Driver"
maxActive="100"
maxIdle="40"
maxWait="4000"
name="jdbc/fish"
username="root"
password="root"
type="javax.sql.DataSource"
url="jdbc:mysql://localhost:3306/fish?useUnicode=true&amp;characterEncoding=UTF-8"
/>
</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>节点内,增加如下代码

  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文件。文件内容如下:

  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. </Context>

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

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

  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)

  1. <property name="connection.datasource">java:comp/env/jdbc/devDS</property>

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

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

最新文章

  1. 【javascript学习——《javascript高级程序设计》笔记】DOM操作
  2. Android 摇一摇 之 传感器片
  3. 简单打包 ipa 方式!
  4. MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限
  5. 114、Android禁止ViewPager的左右滑动
  6. 0527Sprint总结,读书笔记与提问
  7. MySQL 数据库设计 笔记与总结(1)需求分析
  8. Cornerstone问题
  9. raywenderlich-iOS设计模式Part 1/2【译】
  10. forward:hello 与 redirect:hello的区别
  11. go learning notes
  12. LeetCode OJ 31. Next Permutation
  13. 用php+mysql+ajax实现淘宝客服或阿里旺旺聊天功能 之 后台页面
  14. Active MQ 实战(一)
  15. 字段从varchar2修改为number,字段中的内容做修改,替换
  16. 2—ARM中的异常中断
  17. Linux下配置mysql远程访问
  18. 学习笔记:AngularJs
  19. [No000014D]chrome console 调试 引入 jquery等外部库
  20. Ionic命令大全

热门文章

  1. time模块的学习
  2. spring @Bean注解的使用
  3. 在Ubuntu上升级SQLite,并让Python使用新版SQLite
  4. 初识docker
  5. Android studio使用android:style/Theme.Dialog报错:You need to use a Theme.AppCompat theme (or descendant) with this activity. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
  6. js 获取get参数
  7. (Solved) Nexiq USB link&#160;with CAT ET: connection error 149
  8. 【spring】使用spring过程中踩到的坑
  9. SQL数据库索引理解与应用【转贴--收藏】
  10. C# 截取两个指定字符串中间的字符串列表