`
刀剑如梦
  • 浏览: 5345 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

在tomcat6.0中配制数据源

阅读更多

经过一段艰苦的..........,当然也要感谢WWW提供信息的朋友。
终于把数据源的配置和JDNI 使用的示例给跑通了,于是就总结下,
也希望给需要这方面的的同事带来方便。


 JNDI : Java Naming and Directory Interface (JNDI)
JNDI works in concert with other technologies in the Java Platform, Enterprise Edition (Java EE) to organize and locate components in a distributed computing environment.
翻译:JNDI  在Java平台企业级开发的分布式计算环境以组织和查找组件方式与其他技术协调工作。

Tomcat 6.0 的数据源配置
 
网上有些资料是5.0方式配置或者解释的不清楚(可能我理解力有问题.呵呵)

给大家我的配置方式:

1,在Tomcat中配置:
    tomcat 安装目录下的conf的context.xml 的
   <Context></Context>中
添加代码如下:

Xml代码 复制代码
  1. <Resource  name="jdbc/tango"  
  2.             auth="Container"  
  3.         type="javax.sql.DataSource"  
  4.             maxActive="20"  
  5.             maxIdel="10"  
  6.             maxWait="1000"  
  7.             username="root"  
  8.             password="root"  
  9.     driverClassName="com.mysql.jdbc.Driver"        url="jdbc:mysql://localhost:3306/tango"  
  10.         >  
  11. </Resource>   
<Resource  name="jdbc/tango"
            auth="Container"
        type="javax.sql.DataSource"
            maxActive="20"
            maxIdel="10"
            maxWait="1000"
            username="root"
            password="root"
    driverClassName="com.mysql.jdbc.Driver"        url="jdbc:mysql://localhost:3306/tango"
        >
</Resource> 

 

其中:
name 表示指定的jndi名称
auth 表示认证方式,一般为Container
type 表示数据源床型,使用标准的javax.sql.DataSource
maxActive 表示连接池当中最大的数据库连接
maxIdle 表示最大的空闲连接数
maxWait 当池的数据库连接已经被占用的时候,最大等待时间
username 表示数据库用户名
password 表示数据库用户的密码
driverClassName 表示JDBC DRIVER
url 表示数据库URL地址

示例代码代码 复制代码
  1. //Context initContext;   
  2. try {   
  3.    Context context=new InitialContext();    
  4.    DataSource ds=(DataSource) context.lookup("java:/comp/env/jdbc/tango");     
  5. // "java:/comp/env/"是固定写法,后面接的是   
  6. //context.xml中的Resource中name属性的值    
  7.     Connection conn = ds.getConnection();   
  8.     Statement stmt = conn.createStatement();   
  9.     ResultSet set = stmt.executeQuery("SELECT id,name,age FROM user_lzy");   
  10.     while(set.next()){   
  11. System.out.println(set.getString("name"));   
  12.     }   
  13.     //etc.   
  14. } catch (NamingException e) {   
  15.     // TODO Auto-generated catch block   
  16.     e.printStackTrace();   
  17. } catch (SQLException e) {   
  18.     // TODO Auto-generated catch block   
  19.     e.printStackTrace();   
  20. }  
//Context initContext;
try {
   Context context=new InitialContext(); 
   DataSource ds=(DataSource) context.lookup("java:/comp/env/jdbc/tango");  
// "java:/comp/env/"是固定写法,后面接的是
//context.xml中的Resource中name属性的值 
    Connection conn = ds.getConnection();
    Statement stmt = conn.createStatement();
    ResultSet set = stmt.executeQuery("SELECT id,name,age FROM user_lzy");
    while(set.next()){
System.out.println(set.getString("name"));
    }
    //etc.
} catch (NamingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

 

同时你需要把你使用的数据驱动jar包放到Tomcat的lib目录下。
如果你使用其他数据源如DBCP数据源,需要在<Resouce 标签多添加一个属性如
  factory="org.apache.commons.dbcp.BasicDataSourceFactory"
当然你也要把DBCP相关jar包放在tomcat的lib目录下。

这样的好处是,以后的项目需要这些jar包,可以共享适合于项目实施阶段。
如果是个人开发阶段一个tomcat下部署多个项目,在启动时消耗时间,同时
可能不同项目用到不用数据源带来麻烦。所以有配置方法2

2在项目的中配置:

在WebRoot下面建文件夹META-INF,里面建一个文件context.xml,
添加内容和 配置1一样
同时加上<Resouce 标签多添加一个属性如
 factory="org.apache.commons.dbcp.BasicDataSourceFactory"


示例代码也和配置1一样

这样做的:可以把配置需要jar包直接放在WEB-INF的lib里面 和服务器内容无关

总后一点:提醒大家,有个同学可能说 tomacat的有DBCP的jar包,确实tomcat把它放了
进去,你就认为不用添加DBCP数据源的jar包,也按照上面的配置,100%你要出错。
因为tomcat重新打包了相应的jar,你应该把 
  factory="org.apache.commons.dbcp.BasicDataSourceFactory" 改为
  factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"

谢谢大家阅读

********************************************************************************

配制全局数据源时如果是用非tomcap-dbcp(也就是设置了factory属性)则要将引用的数据源和数据库驱动都放到tocmat/lib下

配制单个的webApp时,是在META-INF建一个context.xml文件,当tocmat启动时tocmat会自动在%TOMCAT-HOME%\conf\Catalina\localhost 下生成一个跟webApp同名的.xml文件,内容为context.xml文件里的内容.这个文件以后都不会变(也就是说如果重新发布webApp这个xml文件的内容也不会变,所以当webApp的context.xml文件改动后在发布前先将%TOMCAT-HOME%\conf\Catalina\localhost 下的webApp(名).xml文件先删除为好)

分享到:
评论

相关推荐

    tomcat6.0 数据源配置

    标题“Tomcat6.0数据源配置”涉及的是在Apache Tomcat 6.0版本中设置和管理数据库连接池的过程。Tomcat作为一个流行的开源Java应用服务器,提供了多种数据源配置方式,以支持Web应用程序高效、安全地访问数据库。在...

    Tomcat6.0——压缩包下载

    Tomcat6.0是该软件的一个重要里程碑,因为它在当时的Java EE 5规范下提供了对Servlet 2.5和JSP 2.1的支持。 【描述】中的重复内容强调了这个压缩包是关于Tomcat6.0的资源下载,这表明这个压缩文件包含了运行和配置...

    tomcat6.0的安装版

    描述中的重复强调了Tomcat6.0的安装版,暗示了这个压缩包可能是为用户提供了一键式的安装体验,帮助用户快速在本地环境中搭建Tomcat服务器。这通常包括配置文件、必要的库和启动脚本等,使得对服务器环境不熟悉的...

    tomcat6.0配置MYSQL数据源步骤及获取方法

    以下将详细介绍在Tomcat 6.0中配置MySQL数据源的步骤,以及获取相关资源的方法。 首先,确保你已经安装了Tomcat 6.0和MySQL数据库。如果尚未安装,可以从官方站点下载并按照指南进行安装。 **步骤1:创建MySQL...

    tomcat6.0 jar包及源代码

    本篇将围绕"tomcat6.0 jar包及源代码"这一主题,深入探讨Tomcat的核心组件、工作原理以及源代码解析。 首先,我们要理解Tomcat的jar包。在"apache-tomcat-6.0.16.zip"文件中,包含了Tomcat运行所需的各种jar包,如`...

    Tomcat6.0配置JNDI数据源完整例子(5.5与此配置相同)

    本文将详细讲解如何在Tomcat 6.0版本中配置JNDI(Java Naming and Directory Interface)数据源,这个过程与Tomcat 5.5版本基本相同。JNDI允许应用通过一个统一的接口来查找和访问资源,如数据库连接池,从而提高...

    tomcat6.0是一款免费开源的jsp服务器

    在Tomcat6.0中,主要由以下几个核心组件构成: 1. Connector(连接器):负责接收和响应HTTP请求,将HTTP协议转换为内部的请求对象供Engine(引擎)处理。 2. Engine(引擎):是最高级别的组件,处理来自Connector...

    tomcat6.0应用部署服务器

    在Tomcat6.0中,用户可以进行以下关键操作: 1. **部署应用**:将WAR文件直接放在Tomcat的webapps目录下,或者通过管理控制台进行部署。 2. **配置虚拟主机**:通过修改conf/server.xml文件,可以创建多个虚拟主机...

    web服务器tomcat6.0

    2. **性能优化**:Tomcat 6.0在处理请求和响应方面进行了许多性能优化,使其能够快速处理高并发访问,适合于中大型Web应用。 3. **内存管理和线程池**:Tomcat 6.0提供了更有效的内存管理机制和线程池配置选项,有...

    tomcat6.0通用版本

    在解压后的"tomcat6.0"文件中,通常会包含以下几个关键部分: - `bin`目录:包含了启动和停止Tomcat的脚本,以及一些管理工具。 - `conf`目录:存放配置文件,如`server.xml`定义了服务器的配置,`context.xml`管理...

    tomcat6.0的源代码

    《深入剖析Tomcat 6.0源代码》 Tomcat,作为Apache软件基金会的一个开源项目,是Java Servlet和JavaServer Pages(JSP)容器的首选,尤其在轻量级应用服务器领域,它以其高效、稳定和易用性而受到广泛的赞誉。...

    tomcat6.0配置心得

    在 Tomcat 4.0 中,连接池配置使用的是 Resource 和 ResourceParams 两个节点,但是在 Tomcat 6.0 中,连接池配置只需要使用 Resource 节点。下面是一个 Tomcat 6.0 的连接池配置示例: ``` type="javax.sql....

    Tomcat 6.0 安装版

    在Tomcat 6.0中,有以下几个关键知识点: 1. **Servlet**:Servlet是Java编程语言中的一种服务器端的API,用于扩展服务器的功能,处理来自客户端(通常是Web浏览器)的请求,并向客户端发送响应。Tomcat 6.0支持...

    tomcat 6.0 数据源的配置

    在Java应用服务器如Tomcat 6.0中,数据源的配置是一项至关重要的任务,因为它允许应用程序通过JNDI(Java Naming and Directory Interface)查找并使用数据源来操作数据库。数据源(DataSource)是一个接口,它提供...

    tomcat6.0免安装版本

    在你提供的文件名`apache-tomcat-6.0.30`中,我们可以推断这是Tomcat 6.0系列的一个具体版本,6.0.30。这个版本可能包含了若干改进、修复和安全更新,相比于之前的版本。 Tomcat 6.0的核心功能包括: 1. **Servlet...

    tomcat6.0 配置jndi

    在Tomcat6.0中配置JNDI,主要是为了实现应用中的数据源管理,使得多个应用可以共享一个数据库连接池,提高资源利用率和系统性能。 **一、JNDI的基本概念** JNDI提供了一个统一的接口,让开发者可以查找和绑定各种...

    Tomcat6.0 JNDI数据源经典实例

    本实例是一个关于如何在Tomcat 6.0中配置和使用JNDI数据源的经典示例,包含了所需的JAR包、配置文件和SQL脚本。 首先,我们来看配置JNDI数据源的步骤。在Tomcat的`conf/server.xml`文件中,你需要添加一个新的`...

    apache-tomcat6.0 服务器

    在Tomcat 6.0中,服务器配置变得更加简单和灵活。管理员可以通过修改conf目录下的服务器配置文件(如server.xml、web.xml等)来调整服务器的行为,包括设置监听端口、管理应用上下文路径、配置连接器和 Realm(身份...

    解压版tomcat6.0

    标题中的“解压版Tomcat6.0”指的是Apache Tomcat服务器的6.0版本的非安装版,这种版本不需要经过传统的安装过程,用户只需将其下载并解压缩到指定目录即可开始使用。Tomcat是一个开源的Java Servlet容器,主要用于...

Global site tag (gtag.js) - Google Analytics