在学习视频“v512工作室_刘伟_Java高端培训系列视频_JavaWeb开发_第五章JDBC连接池与数据源(下).avi”时遇到Tomcat6.0 连接池的配置不成功的问题,现已解决,把解决的过程写出来,供大家参考。
注:
1.本人当前使用的Tomcat版本为:6.0.20,oracle为稳定的9i版本
2.下文为方便起见,依习惯以%Tomcat_Home%表示Tomcat安装的目录,本人安装目录为“E:/Program Files/WindowsXP/tomcat6”
配置步骤如下:
1.Tomcat 6的配置和以前的不同了,不推荐在server.xml中进行配置,而是在%Tomcat_Home%/webapps/yourApp/META-INF /context.xml中进行配置才是更好的方法。而不是以前版本%Tomcat_Home%/conf下的context.xml文件。这样就可以在不同的web应用下单独配置连接池了,且Tomcat会自动重载。当然你也可以更改%Tomcat_Home%/conf下的context.xml文件,将所有web应用下的连接池进行统一配置。
2.将代码修改如下:
- <Context reloadable="true">
- <WatchedResource>WEB-INF/web.xml</WatchedResource>
- <Resource name="jdbc/oracleds" auth="Container" type="javax.sql.DataSource"
- maxActive="100"
- maxIdle="30"
- maxWait="10000"
- username="scott"
- password="tiger"
- driverClassName="oracle.jdbc.driver.OracleDriver"
- url="jdbc:oracle:thin:@localhost:1521:ora9"/>
- </Context>
name 为当前数据源JNDI的名字,可以随意设定;
auth 为验证方式;
type 资源类型;
driverClassName 为Oracle驱动引用;
maxActiv 为连接池最大激活的连接数,设为0表示无限制;
maxIdle 为连接池最大空闲的连接数,数据库连接的最大空闲时间。超过空闲时间,
数据库连接将被标记为不可用,然后被释放。设为0表示无限制;
maxWait 为连接最大的等待时间,单位毫秒,如果超过此时间将接到异常。设为-1
表示无限制。;
username 为oracle数据库的一个用户名;
password 为username的密码;
url 为连接oracle的连接地址;
注:本人尝试将代码“driverClassName="oracle.jdbc.driver.OracleDriver"”改为“driverClassName="oracle.jdbc.OracleDriver"”程序依然运行正常,刚开始以为老师的代码有问题
3.在程序中的调用形式为:
- Context context = new InitialContext();
- DataSource ds = (DataSource)context.lookup("java:/comp/env/jdbc/oracleds");
- Connection conn = ds.getConnection();
注:“java:/comp/env/jdbc/oracleds”红色标记文字为步骤1里设置的Resource name
则可以将建立connection的方式以上述形式取代传统方式:
- String driver = "oracle.jdbc.driver.OracleDriver";
- String url = "jdbc:oracle:thin:@localhost:1521:ora9";
- String username = "scott";
- String password = "tiger";
- Class.forName(driver);
- Connection conn = DriverManager.getConnection(url, username, password);
4.另外还需将用到的jdbc驱动类库导入到%Tomcat_Home%/lib目录下
否则会抛出如下异常:
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'oracle.jdbc.driver.OracleDriver'
依上述步骤就能成功的配置Tomcat6.0 连接池,还有网友贴文说需
在web.xml文件中的web-app节点下加入如下代码形式:
<resource-ref>
<res-ref-name>jdbc/myoracle</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
</resource-ref>
因本人未添加此项,程序依然正确,故本人认为此步骤为非必要项
初学者遇到困难若不能及时得到解决,会严重影响学习的兴趣和积极性,希望此文能给遇到同样问题的初学者们一点帮助,也希望朋友们能在遇到困难时不要气馁,一定要有攻克难关的信心,一句话:法宝(百度+Google)在手,万事无忧!
相关推荐
在 Tomcat 4.0 中,连接池配置使用的是 Resource 和 ResourceParams 两个节点,但是在 Tomcat 6.0 中,连接池配置只需要使用 Resource 节点。下面是一个 Tomcat 6.0 的连接池配置示例: ``` type="javax.sql....
本文将详细讲解如何在Tomcat 6.0中配置Oracle数据库连接池。 首先,我们要明白连接池的基本原理。数据库连接池管理数据库连接,避免每次需要连接时都创建新的连接,而是复用已存在的连接,这样可以显著减少数据库...
本篇文章将深入探讨如何在Tomcat 6.0应用服务器上配置Oracle数据库连接池,以及如何使用第三方DBCP(Database Connection Pool)库来实现这一目标。DBCP是一个开源的Java连接池实现,它为应用程序提供了一种有效管理...
这里提供了使用JNDI配置数据源的实例,涵盖了不同数据库(如MySQL、Oracle等)的连接池配置,帮助开发者快速集成数据库。 八、SSL配置(ssl-howto.html) SSL(Secure Socket Layer)用于加密网络通信,确保数据...
本文将详细介绍如何在Tomcat 5.5环境下配置Oracle、MySQL以及SQL Server 2000的连接池。 #### 二、连接池基本概念 连接池是一种管理数据库连接的技术,它通过预先创建并维护一定数量的数据库连接实例,来避免每次...
在本文中,我们将深入探讨如何在Tomcat 6.0中配置数据源,这是一个关键的步骤,对于任何基于Java的应用程序来说,特别是那些依赖于数据库的Web应用。数据源的配置使得应用程序能够有效地管理和访问数据库连接,提高...
总结来说,从Tomcat 5.0到6.0的连接池变化主要体现在配置位置的迁移,配置方式的简化,以及对连接池管理特性的增强,使得开发者能够更加灵活、高效地管理数据库连接,提高应用程序的性能和稳定性。
##### 2.1 Tomcat 6.0 连接池配置 **步骤1:** 在`conf/context.xml`文件中添加连接池配置。例如,为Oracle数据库配置连接池: ```xml <Resource name="jdbc/oracle" auth="Container" type="javax.sql....
Tomcat自带数据库连接池,但是需要进行相应的配置才能使用Tomcat的数据库连接池。此文只针对Tomcat6.0进行配置。 1.在自己的项目下的META-INF(注意:不是WEB-INF,我看网上很多人都弄错了)下面新建一个context....
### Tomcat连接池配置详解 #### 一、引言 在现代Web应用开发中,数据库连接池技术的应用极为广泛。合理地配置连接池可以显著提高应用程序的性能与稳定性。本文将详细介绍如何在Tomcat服务器中配置数据库连接池,并...
#### 一、Tomcat6.0连接池配置 Tomcat6.0提供了更完善的连接池配置方式,使得开发者能够更加方便地管理和优化数据库连接资源。 ##### 1. 配置`context.xml`文件 首先需要在Tomcat的`conf`目录下的`context.xml`文件...
本篇文章将深入解析如何在Tomcat 6.0中配置数据库连接池,包括在JSP应用中使用和调用的方法。 首先,我们要创建`context.xml`文件。这个文件位于项目的`META-INF`目录下,而不是`WEB-INF`。`context.xml`是Tomcat...
在Tomcat 6.0中配置Oracle数据库连接池,首先需要确保安装了Oracle数据库,并且在服务器的`lib`目录下包含了相应的JDBC驱动包,例如`ojdbc6.jar`。这是因为Tomcat在处理数据库连接时需要依赖这个驱动包。将驱动包放...
打开Tomcat的配置目录`D:\Tomcat6.0\conf\Catalina\localhost`下的相关XML文件。通常情况下,我们会在每个Web应用对应的XML文件中配置数据源,如`ManyDataSource.xml`所示: ```xml auth="Container" type=...