tomcat连接池的配置与使用

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: tomcat连接池的配置与使用(原创)数据库mysql 【大 中 小】【打印】【加入收藏】【关闭】 【收藏到新浪ViVi】【收藏到365KEY】 浏览字号: 日期:2004-11-11 人气: 19442 出处:http://www.chinajavaworld.com 作者: liyong33 憋了好久,终于出炉了。
tomcat连接池的配置与使用(原创)数据库mysql
】【打印】【加入收藏】【关闭收藏到新浪ViVi】【 收藏到365KEY】 浏览字号:
日期:2004-11-11 人气: 19442 出处:http://www.chinajavaworld.com 作者: liyong33
憋了好久,终于出炉了。

关于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的安装目录,下皆同)。至于数据库的建立我就不说了,自己按照文章去做吧,说明一下,尽管我不说,我还是按照文章上来做的,你们照葫芦画瓢即可。
首先将那段
       debug="5" reloadable="true" crossContext="true">

             prefix="localhost_DBTest_log." suffix=".txt"
            timestamp="true"/>

               auth="Container"
              type="javax.sql.DataSource"/>
 
   
     factory
     org.apache.commons.dbcp.BasicDataSourceFactory
   

   
   
     maxActive
     100
   

   
   
     maxIdle
     30
   

   
   
     maxWait
     10000
   

   
   
    username
    javauser

   


   
    password
    javadude

   
   
   
   
   
      driverClassName
      com.mysql.jdbc.Driver
   
   
   
   
     url
     jdbc:mysql://localhost:3306/javatest?autoReconnect=true

   
 

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

用我的,没错的。
Test.jsp



test.jsp

test Tomcat


try
{
Context initCtx=new InitialContext();
DataSource ds = (DataSource)initCtx.lookup("java:comp/env/jdbc/TestDB");
Connection conn=ds.getConnection();
out.println("data from database:
");
Statement stmt=conn.createStatement();
ResultSet rs =stmt.executeQuery("select id, foo, bar from testdata");
while(rs.next())
{
out.println(rs.getInt("id"));
out.println(rs.getString("foo"));
out.println(rs.getString("bar"));
}
rs.close();
stmt.close();
}
catch(Exception e)
{
e.printStackTrace();
}
%>
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
XML 应用服务中间件 Apache
Tomcat AJP连接器配置secretRequired=“true“,但是属性secret确实空或者空字符串,这样的组合是无效的。
Tomcat AJP连接器配置secretRequired=“true“,但是属性secret确实空或者空字符串,这样的组合是无效的。
|
10天前
|
前端开发 Java 应用服务中间件
Springboot对MVC、tomcat扩展配置
Springboot对MVC、tomcat扩展配置
|
4月前
|
Java 应用服务中间件 容器
SpringBoot配置外部Tomcat并打war包
SpringBoot配置外部Tomcat并打war包
68 0
|
4天前
|
运维 Java 应用服务中间件
Tomcat详解(七)——Tomcat使用https配置实战
Tomcat详解(七)——Tomcat使用https配置实战
12 4
|
4月前
|
Java 应用服务中间件
SpringBoot 项目war包部署 配置外置tomcat方法
SpringBoot 项目war包部署 配置外置tomcat方法
70 0
|
18天前
|
Java 应用服务中间件
Springboot启动的时候初始化的线程池默认配置tomcat
Springboot启动的时候初始化的线程池默认配置tomcat
12 1
|
3月前
|
应用服务中间件 Windows
Tomcat安装和配置
Tomcat安装和配置
32 0
|
4月前
|
Java 应用服务中间件 Spring
Tomcat【部署 01】安装包版本说明+安装+参数配置+启动(JDK11+最新版apache-tomcat-10.0.12)
Tomcat【部署 01】安装包版本说明+安装+参数配置+启动(JDK11+最新版apache-tomcat-10.0.12)
61 0
|
4月前
|
XML Java 应用服务中间件
SpringBoot配置外部Tomcat项目启动流程源码分析(长文)
SpringBoot配置外部Tomcat项目启动流程源码分析(长文)
49 0
|
4月前
|
应用服务中间件
Tomcat安装配置后,浏览器在哪里打开
Tomcat安装配置后,浏览器在哪里打开
44 0