今天做接jsp的作业,在页面跳转的时候一直遇到个问题,“org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class ' ' …… for connect URL 'null', cause: No suitable driver”,百度加谷歌了好长时间,先将比较有用的一篇文章摘录如下。其中“将驱动加入CLASSPATH”就是将驱动放到java目录的下的jre/lib/ext/目录下面。

还有遇到的问题就是tomcat的Admin页面登录问题,要到tomcat的安装目录下面的conf文件下,打开"tomcatusers.xml"文件,修改一下即可,代码如下:

View Code

以下是原文,不过我用的数据库是Ms sql,差别不大。(原文地址:http://www.7880.com/Info/Article-37f05fa0.html)

关于tomcat连接池的配置,我在自己开始的时候碰到过许多的问题,至少失败过六次,今天终于成功了。对于这个问题的产生与由来我也给大伙说说。
在《程序员csdn开发高手》这本杂志的2004年第02期,一位名叫宋廷宇的老师写了一篇文章,名赤《tomcat连接池的图形化配置与使用》,我看到了这篇文章,该作者所使用的数据库是sql server,而我所使用的数据库是mysql,tomcat版本为5.0 19。文中有这么一段话:“在tomcat 4.1.18及后续版本中提供了图形界面的web应用发布工具,但是使用这个工具发布采用数据库连接池的web应用时,自动生成的配置不能找到数据源。这是一个bug,相信在后续的版本中所有关于数据库连接池的配置和发布都不需要在手工修改配置文件,而使用简单方便的全图形化工具”。当时我个人认为:我所使用的tomcat 5.0版的,bug应该修正了吧,况且数据库配置嘛,换汤不换药,原理应该是一样的,但是我严格按照这篇文章上来配置,结果事与愿为,配置成功运行后出错了。附错误如下:
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '
' for connect URL 'null', cause: No suitable driver
相信学过jsp连接数据库的人都有常识,那就是将驱动加入CLASSPATH。排除错误,驱动没问题。迷惑中
于是乎,检查,重来再检查,再重来,错误不变。
既然图形下配置错误,那么我手动配置。上网搜索,最权威的当然就是tomcat的doc。刚好文档中有一篇讲如何配置mysql数据库连接池的(全英文的,幸好我英语过得去),一步一步严格按照它的格式来配置,当我看到同样的错误时,犹如晴天劈雳。一个字:晕!!!差点放弃。(如果放弃了,就不会有我今天这篇文章了,好险呀!!!)
因此我认为tomcat有问题。这个错误很多人都见过,在csdn及本论坛上,有许多人问到这样的问题,为这问题,我还在国外的论坛上搜索了,也有人问到这样的问题,他们说这是tomcat的一个bug,于是我就默认了。后来想想不对,如果是bug的话,jarkata项目组织肯定会贴出来并且修正这个bug的。
我就下载了最新版本的tomcat(5.0 25)再次试验,首先是按照书上的文章进行图形化配置,结果依然,心里想,bug肯定修正,且我与作者的步骤一样。问题休在???沉着冷静下来,再次看看tomcat的文档。又回想起宋廷宇老师的文章中那段话,莫非真的是图形配置中的bug。
http://jakarta.apache.org/tomcat/tomcat-5.0-doc/jndi-datasource-examples-howto.html
好,就来手工配置吧。于是又打开tomcat的doc开始了手工配置。配置之前建议大家对server.xml文件做一个备份,原因就不讲了。
打开server.xml文件,在哪??晕!!打开tomcat$\conf文件夹(tomcat$指的是tomcat的安装目录,下皆同)。至于数据库的建立我就不说了,自己按照文章去做吧,说明一下,尽管我不说,我还是按照文章上来做的,你们照葫芦画瓢即可。
首先将那段

View Code

1 <Context path="/DBTest" docBase="DBTest"
2 debug="5" reloadable="true" crossContext="true">
3  <!—注意到这里的DBTest了吧,这就是要求大家建立DBTest目录的原因。-->
4 <Logger className="org.apache.catalina.logger.FileLogger"
5 prefix="localhost_DBTest_log." suffix=".txt"
6 timestamp="true"/>
7 <Resource name="jdbc/TestDB"
8 auth="Container"
9 type="javax.sql.DataSource"/>
10 <ResourceParams name="jdbc/TestDB">
11 <parameter>
12 <name>factory</name>
13 <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
14 </parameter>
15 <!-- Maximum number of dB connections in pool. Make sure you
16 configure your mysqld max_connections large enough to handle
17 all of your db connections. Set to 0 for no limit.
18 -->
19 <parameter>
20 <name>maxActive</name>
21 <value>100</value>
22 </parameter>
23 <!-- Maximum number of idle dB connections to retain in pool.
24 Set to 0 for no limit.
25 -->
26 <parameter>
27 <name>maxIdle</name>
28 <value>30</value>
29 </parameter>
30 <!-- Maximum time to wait for a dB connection to become available
31 in ms, in this example 10 seconds. An Exception is thrown if
32 this timeout is exceeded. Set to -1 to wait indefinitely.
33 -->
34 <parameter>
35 <name>maxWait</name>
36 <value>10000</value>
37 </parameter>
38 <!-- MySQL dB username and password for dB connections -->
39 <parameter>
40 <name>username</name>
41 <value>javauser</value>
42 <!—数据库用户名-->
43 </parameter>
44 <parameter>
45 <name>password</name>
46 <value>javadude</value>
47 <!—数据库密码-->
48 </parameter>
49 <!-- Class name for the old mm.mysql JDBC driver - uncomment this entry and comment next
50 if you want to use this driver - we recommend using Connector/J though
51 <parameter>
52 <name>driverClassName</name>
53 <value>org.gjt.mm.mysql.Driver</value>
54 </parameter>
55 这里面是被注释的,因为以前连接mysql是这样连接的,现在建议用下面的方法,自己可以看到。
56 -->
57
58 <!-- Class name for the official MySQL Connector/J driver -->
59 <parameter>
60 <name>driverClassName</name>
61 <value>com.mysql.jdbc.Driver</value>
62 </parameter>
63
64 <!-- The JDBC connection url for connecting to your MySQL dB.
65 The autoReconnect=true argument to the url makes sure that the
66 mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
67 connection. mysqld by default closes idle connections after 8 hours.
68 -->
69 <parameter>
70 <name>url</name>
71 <value>jdbc:mysql://localhost:3306/javatest?autoReconnect=true</value>
72 <!--这是数据库的地址,也可以不要这么繁琐,改为
73 jdbc:mysql://localhost/javatest即可,javatest为数据库名-->
74 </parameter>
75 </ResourceParams>
76 </Context>

贴在这了,别嫌长啊。我加了注释。至于我们贴到什么位置,在</Host>前面,找到相对应的位置,由于我的server.xml文件未备份,所以我无法再次将所贴位置告诉大家了,不好意思,有事给我发过来,我一定还记得的,到时再手把手教你们。
在tomcat$\webapps文件夹下建立一个名为DBTest的文件夹,注意大小写。在此文件夹下建立WEB-INF文件夹,及一个文件:test.jsp,再在WEB-INF文件夹下建立两个文件夹:lib及classes,将数据库驱动文件拷贝到lib文件夹下,同样还在WEB-INF文件夹下建一个文件web.xml,看到doc上有现成的,要不要拷贝呀,这就有个问题,doc有个问题,有空给它们写封信吧,这也是我经过实现才发现的。

View Code

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
<description>MySQL Test App</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/TestDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>

View Code

1 Test.jsp
2 <%@ page contentType="text/html; charset=GBK"%>
3 <%@ page import="java.sql.*,javax.sql.DataSource,javax.naming.*"%>
4 <html>
5 <head><title>test.jsp</title></head>
6 <body bgcolor="#ffffff">
7 <h1>test Tomcat</h1>
8 <%
9 try
10 {
11 Context initCtx=new InitialContext();
12 DataSource ds = (DataSource)initCtx.lookup("java:comp/env/jdbc/TestDB");
13 Connection conn=ds.getConnection();
14 out.println("data from database:<br>");
15 Statement stmt=conn.createStatement();
16 ResultSet rs =stmt.executeQuery("select id, foo, bar from testdata");
17 while(rs.next())
18 {
19 out.println(rs.getInt("id"));
20 out.println(rs.getString("foo"));
21 out.println(rs.getString("bar"));
22 }
23 rs.close();
24 stmt.close();
25 }
26 catch(Exception e)
27 {
28 e.printStackTrace();
29 }
30 %>
31 </body>
32 </html>

转载于:https://www.cnblogs.com/c3055/articles/2046835.html

tomcat连接池的配置与使用相关推荐

  1. 数据库连接池和Tomcat连接池的配置问题

    在做系统优化的时候师哥给我们提了一个连接池的概念,问我们有没有配置,我对这个概念一无所知,于是进行了一些研究,连接池有很多,比如WCF.EF还有数据库.CAS也可以配连接池,这些连接池用通俗的语言来说 ...

  2. Tomcat连接池配置

    1.  Tomcat c3p0连接池配置 (1)  修改conf/server.xml,在<GlobalNamingResources>标签内添加如下内容 <Resource nam ...

  3. SpringBoot中数据连接池的配置(tomcat,HikariCP,dbcp2,druid)

    SpringBoot中数据连接池的配置(tomcat,HikariCP,dbcp2,druid) 文章目录 SpringBoot中数据连接池的配置(tomcat,HikariCP,dbcp2,drui ...

  4. TOMCAT 连接池数据库密码加密方法

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 原文来自 ...

  5. 使用JavaBean封装对数据库的访问、连接池的配置和使用

     目标: l         掌握如何共享连接数据库的代码: l         掌握PrepareSatement的使用: l         掌握数据库连接池的配置和使用: 主要内容: l   ...

  6. Tomcat数据库连接池的配置方法总结(叶涛为您解答)

    实例使用的Tomcat版本为6.0 方法一: 在Tomcat的conf/context.xml中配置在Tomcat\apache-tomcat-6.0.33\conf目录下的context.xml文件 ...

  7. 数据连接池默认配置带来的坑testOnBorrow=false,cloes_wait 终于解决了

    首先说一下自己程序中遇到的问题,前一段新写了一个项目,主要为方便公司业务切库做准备,为其他项目提供接口(spring boot 项目<spring boot + mongo data jpa+m ...

  8. java tomcat连接池,tomcat容器的内置连接池怎么使用(按时结帐)

    tomcat容器的内置连接池怎么使用(按时结帐) tomcat容器的内置连接池怎么使用(按时结帐) 日期:2014-05-18 浏览次数:20325 次 tomcat容器的内置连接池如何使用(按时结帐 ...

  9. mysql连接池测试_Tomcat+mysql连接池的配置与测试

    [转贴请注明出处] 龙族联盟:网络巡警 Tomcat+mysql连接池的配置与测试 环境: Tomcat6.0.18 Mysql: 5.1.36 Windwos XP sp2 最近需要用到Tomcat ...

最新文章

  1. 优化算法optimization:AdaGrad
  2. Parse error: syntax error, unexpected T_PUBLIC in 问题解决
  3. legend3---OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054
  4. python_目录结构
  5. eureka服务失效剔除时长配置
  6. Java黑皮书课后题第10章:*10.22(实现String类)Java库中提供了String类,给出你自己对下面方法的实现(将新类命名为MyString1)
  7. jQuery相当于对 javascript二次开发,所以基于 jQuery实现的各种插件直接调用即可...
  8. (csc)Visual C# 2010 编译器选项.
  9. 4章 关键的“构建”决策
  10. autocad型源代码_AutoCAD文件格式详解
  11. 基于Python的面部表情识别分析系统
  12. 3D点云人脸鼻尖检测算法
  13. android Gmail查看图片时选择经信息(彩信)分享,手机报错或手机报错后又回到查看图片界面
  14. 全球及中国EOG放大器行业运营前景与发展动态研究报告2022版
  15. 计算机455端口,455端口怎么关闭-455端口关闭的方法 - 河东软件园
  16. wincc7.3与MYSQL_Wincc7.3学习之——如何建立起数据库链接
  17. Django适配达梦数据库
  18. 共享出行化解城市交通难题(中)
  19. android中gravity什么意思,详解介绍android:layout_gravity 和 android:gravity 之间的区别
  20. 永恒之黑(CVE-2020-0796)

热门文章

  1. ffmpeg 视频裁剪格式问题
  2. AtCoder Beginner Contest 217
  3. OpenGLES 3.0
  4. 青蛙过河(二分+并查集)
  5. children和childNodes 的区别
  6. 关于BeanUtils.populate()方法使用时的报错解决
  7. Pycharm安装与设置
  8. 学习VM上运行dnf(整理)
  9. ESX5.1 安装Hyper v
  10. Percona 数据库