`
fman
  • 浏览: 53663 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论

转帖:Tomcat连接池配置(完整版)

阅读更多
         最近一个朋友,发了一个异常消息.给我看,说他的Tomcat6,配置数据源连接池。怎么的都不成功. 他说他在网上看了很多相关资料。那些资料都说可以配置成功.但是他照着资料详细配置的,还是不行.
下面是他发的异常:
Java代码 
严重: Servlet.service() for servlet jsp threw exception 
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null' 
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:780) 
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540) 

          我也很久没有配置过这个东西啦,Tomcat的版本.5.0  、5.5  、6.0  都使用过. .   想当初学的时候,连接池的配置也是到网上查资料,然后自己试验...  也没懂得很深的原理 . 基本可以看懂, 然后自己修改这样子,最后能在项目中正常使用就行啦.
     我把这个异常,到百度搜了一下,很多人遇到过同样的问题.但是资料很杂, 不是很详细. (网上看到这边文章:http://yanglingsx.blog.163.com/blog/static/90584353200907109955/终于是成功啦).通过这个问题的解决  想跟大家分享下我对tomcat配置连接池更深的发现.
      
     不管是tomcat5,Tomcat5.5或Tomcat6.0. 用下面的这两中方法配置连接池,都可以成功.

1. 应该算是全局的连接池的配置
 
     (1).不管是tomcat5 还是tomcat6 ,都首先找到Tomcat目录下面的conf目录中的server.xml文件.
           找到<GlobalNamingResources> </GlobalNamingResources>这对标签.
        将这样的一段配置加到标签中间.
      
Xml代码 
<Resource  
    name="jdbc/TestDB"  
    auth="Container"         
                type="javax.sql.DataSource" 
    driverClassName="com.mysql.jdbc.Driver"  
url="jdbc:mysql://localhost:3306/test?autoReconnect=true" 
        maxActive="50"  
    maxldle="10"  
    maxWait="5000" 
    username="root" 
    password="admin" /> 
        当然,样例是使用 MYSQL配置, 根据不同的需要,将url,driverClassName,username,passsword等参数改变就行.
         然后再找到和server.xml同目录下面的context.xml文件.
   在<Context></Context>标签中添加如下配置.
Xml代码 
<ResourceLink global="jdbc/TestDB" name="jdbc/TestDB" type="javax.sql.DataSource"/> 
     global="jdbc/TestDB" 中的参数值("jdbc/TestDB")必须和上一段<Resource >配置中的name属性的值保持一样.
     name="jdbc/TestDB" 这个可以随便取,但是在程序中调用的时候,就应该与name的值保持一致.
     到这里,连接池已经配置好啦.
 
   写个jsp测试吧:
  
Java代码 
<%@ page language="java" pageEncoding="gbk"%> 
<%@page import="java.sql.Connection"%> 
<%@page import="javax.naming.Context"%> 
<%@page import="javax.naming.InitialContext"%> 
<%@page import="javax.sql.DataSource"%> 
<%@page import="java.sql.Statement"%> 
<%@page import="java.sql.ResultSet"%> 
<%  
   //连接池的获取 
    Connection conn = null; 
    DataSource ds = null; 
    ResultSet rs  =null; 
    Statement stmt = null; 
    Context initCtx = new InitialContext(); 
    ds =(DataSource)initCtx.lookup("java:comp/env/jdbc/TestDB"); 
   if(ds!=null){ 
        out.println("已经获得DataSource!");  
        out.println("<br>"); 
        conn = ds.getConnection(); 
       try{ 
        stmt = conn.createStatement(); 
        String sql ="select * from tree_table"; 
        rs = stmt.executeQuery(sql); 
        out.println("以下是从数据库中读取出来的数据:<br>"); 
            while(rs.next()){ 
                out.println("<br>"); 
                out.println(rs.getString("nodeName")); 
            } 
       }catch(Exception ex){ 
         ex.printStackTrace(); 
       }finally{ 
          conn.close(); 
          rs.close(); 
          stmt.close(); 
       } 
   } 
%> 
    在这ds =(DataSource)initCtx.lookup("java:comp/env/jdbc/TestDB");这句代码中的jdbc/TestDB必须和
    <ResourceLink global="jdbc/TestDB" name="jdbc/TestDB" ........ />中的name 属性保持一样.
     "lookup("java:comp/env/..."这都是固定写法.
 
    2.  应该算是局部的连接池的配置吧.(针对工程而言)
       本身我们的工程中META-INF 中,没有context.xml文件,
       例如 :E:\apache-tomcat-5.5.16\webapps\myproj\META-INF\
    
       此时我们可以在META-INF目录下面新建一个context.xml文件.
      里面写下如下的配置,具体的配置参数,按需改变.
   
Xml代码 
<?xml version="1.0" encoding="UTF-8"?> 
<Context reloadable="true" crossContext="true"> 
<Resource  
name="jdbc/TestDB"  
auth="Container"  
type="javax.sql.DataSource" 
driverClassName="com.mysql.jdbc.Driver"  
url="jdbc:mysql://localhost:3306/test?autoReconnect=true" 
maxActive="50"  
maxldle="10"  
maxWait="5000" 
username="root" 
password="admin"  
/> 
</Context> 

        这样子,连接池,也就配置好啦,并不需要修改tomcat里面的文件。仅仅在我们的工程中的META-INF目录加入一个context.xml配置文件就好啦.换tomcat版本,更容易.

注:也许你认为配置这边文章很简单,配置数据源连接池也很简单.但是对于初学者来说,可能是困窘他好久的问题.这方面以前我深有体会.大家都是这样过来的.  仅供参考.
分享到:
评论

相关推荐

    转帖:液晶显示器原理与维修手册

    ### 液晶显示器原理与维修手册核心知识点详解 #### 一、液晶显示器的主要技术指标 **1.... - **定义**: 指显示器屏幕的大小,通常以对角线长度来衡量。 - **常用尺寸**: 14"、15"、15.1"、17"、17.1"。...

    转帖:Android应用的自动升级、更新模块的实现docx.docx

    在Android应用开发中,自动升级和更新功能是一个重要的特性,它允许用户无缝地获取应用的最新版本,提高用户体验。本文将详细介绍如何实现这样一个模块。 **一、基础概念** 1. **版本标识**: 在AndroidManifest.xml...

    转帖:我的职场十年,IT人很值得借鉴呀

    根据给定的信息,我们可以从中提炼出以下IT行业的关键知识点及相关经验分享。 ### 一、职业规划与转型 在文中提到作者从2003年开始的职业生涯,在这段时间内经历了多次转型。这表明在IT行业中,持续学习和适应新...

    论坛转帖工具.rar

    标题中的“论坛转帖工具.rar”表明这是一个用于在论坛之间转移帖子的软件工具,通常用于帮助用户方便地将一个论坛的帖子内容复制到另一个论坛,可能是为了分享信息、讨论或保存重要的帖子。这类工具可能包括自动抓取...

    转帖h3c一些命令配置

    本文将深入解析标题和描述中提及的H3C设备配置命令,以及它们在网络管理中的作用。 首先,配置终端操作密码是网络设备安全的基本措施。在H3C设备上,可以通过以下命令设置用户接口aux 0的密码: ``` [Sysname]user...

    UBB论坛转帖圣手.exe

    UBB论坛转帖圣手.exeUBB论坛转帖圣手.exe

    【转帖】4412嵌入式开发板学习笔记(一)

    在连接7寸屏时,需确保只使用其中一种连接方式,并且要确保另一条线完全断开连接,以防屏幕显示异常。软排线的银色导电面应朝下接入。根据不同的屏幕尺寸,连接方式也会有所不同。 5. 网线的连接:将网线连接至...

    贴吧转帖工具

    【绿易贴吧工具3.7 11.11版.rar】是这个转帖工具的特定版本,其中"3.7"代表软件的版本号,这通常是开发者对软件进行改进和优化后的标识,"11.11"可能指的是该版本的发布日期,如2021年11月11日。".rar"则表明文件是...

    编辑人员转帖去水印工具

    本篇文章将详细探讨“编辑人员转帖去水印工具”,并介绍如何使用名为Teorex Inpaint的1.0.0.2版本的软件来实现这一目标。 首先,我们要理解什么是水印。水印通常是指在图像或视频中添加的半透明标记,它可以是文字...

    discuz X2转帖工具、采集工具

    X2转帖工具、采集工具”是针对这个平台设计的辅助软件,主要用于帮助论坛管理员或用户批量发布帖子和采集内容,提高论坛内容更新的效率。 一、批量发帖功能 1. 自动化发布:此工具可以自动化地创建和发布帖子,...

    原创: httpclient 4.0 使用 - 访问开心网的各种组件 例子

    七、连接池管理 对于频繁的 HTTP 请求,使用连接池可以提高性能: ```java PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(); HttpClientBuilder builder = HttpClients.custom...

    完整版在线查询IP地址.e.rar

    标题中的“完整版在线查询IP地址.e.rar”指的是一个压缩文件,其中可能包含了一个或多个与IP地址在线查询相关的程序或资源。这个标题暗示我们,这个压缩包可能提供了一个工具或者一套服务,允许用户通过互联网查找和...

    【转帖】 使用 JProfiler 监控 JBoss 运行情况

    8. **选择监控模式**:选择“等待来自JProfiler GUI的连接”,即等待客户端发起连接。 9. **确认设置**:点击Finish完成配置,此时会在左侧显示一个新创建的会话。 #### 监控与分析 一旦完成了上述配置,即可通过...

    [转帖]通过WebView获取访问网页的源代码

    1. 首先,我们需要在AndroidManifest.xml中添加Internet权限,因为加载网页需要网络连接: ```xml &lt;uses-permission android:name="android.permission.INTERNET" /&gt; ``` 2. 在布局文件中添加WebView控件: ```xml ...

    一键转帖功能插件 for 帝国CMS 6.0 GBK utf8 V1.0.rar

    《一键转帖功能插件 for 帝国CMS 6.0 GBK utf8 V1.0》 本文将深入探讨“一键转帖功能插件”在帝国CMS 6.0系统中的应用与实现,该插件适用于GBK及UTF-8编码环境,旨在提升网站内容的分享与传播效率。我们将从安装...

    转帖工具插件 for PHPwind 7.5 正式版.rar

    "转帖工具插件 for PHPwind 7.5 正式版" 是专门为 PHPwind 7.5 版本设计的一个功能插件,旨在提供便捷的帖子转移功能,帮助管理员或者用户将内容从一个地方轻松移动到另一个地方,而无需直接编辑论坛的原始文件。...

    Html2UBBMaxcj_Softii论坛专用转帖工具

    HTML2UBBMaxcj 是一款专为Softii论坛设计的转帖工具,它主要用于将HTML格式的帖子内容转换成UBB代码,以便在论坛中更好地显示和分享。UBB(Universal BBCode)是一种轻量级的标记语言,常用于网络论坛,与HTML类似,...

    [转帖]世界编程大赛第一名写的程序

    标题和描述中的“世界编程大赛第一名写的程序”这一知识点,实际上指向了计算机科学与编程竞赛领域的一个重要概念:即在高水平的编程比赛中,优胜者所编写的代码往往蕴含着高级算法、数据结构以及编程技巧。...

    atx电源电路图下载

    atx电源电路图下载 AT电源只要能把电源打开就行了,可现在的ATX电源都是电位控制开关而非机械开关,这就需要从电源的那一排查线孔...转帖:http://www.jdwx.info/thread-270610-1-1.html [家电维修论坛](www.jdwx.info)

Global site tag (gtag.js) - Google Analytics