【总结】关于tomcat+6.0中使用连接池的问题

   以前中练习时,遇到使用连接池时没有怎么在意觉得还是比较容易,没有很在意,觉得就是那个几个的配置问题简单的很!!!
         这次做博客系统的时候,觉得开始用连接池。可是当我把所有的配置都配置好后,开始验证的时候,就出现了一系列的问题,其中一个最让我纠结的文件就是这个javax.naming.NoInitialContextException。这是尼玛错误??纠结了我起码三个小时都没有解决,哎。。。悲剧!!!上网查资料,到论坛上提问,都没有解决!!!
        等过了一会儿,我突然脑中灵光一闪,既然java代码中不可以,那jsp中呢??等我在jsp中尝试的时候又遇到了Cannot load JDBC driver class 'com.microsoft.sqlserver.jdbc.SQLServerDriver'这个错误??为什么找不到驱动??我这里明明已经把该驱动复制到WEB-INF/lib中了啊??为什么还有错误呢??想不通!!然后又百度??找到了答案,要把该驱动复制到tomcat目录的lib下!!哎。。终于可以了!!感谢上帝!!感谢百度!!!!
      下面是关于在 tomcat 6.0中的使用连接池的相关的配置!!!
        一般可以这三个文件中可以配置:tomcat目录下的conf/context.xml、server.xml和webapps/app../META-INF/context.xml中进行配置:

<Context reloadable="true">  
  <WatchedResource>WEB-INF/web.xml</WatchedResource>

  <Resource name="jdbc/server"  
  auth="Container"  
  type="javax.sql.DataSource"  
  driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"  
  url="jdbc:sqlserver://localhost:1433;databaseName=blog"  
  username="sa"  
  password="SQL2005"  
  maxActive="100"  
  maxIdle="30"  
  maxWait="10000" />

</Context>

然后是web.xml中的配置:
<resource-ref>  
    <description>DBConnection</description>
    <res-ref-name>jdbc/server</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref> 

注意:在web.xml中的<res-ref-name>中的值要和Resource中的name的名字一样
最后是测试代码了:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> 
<%@page import="java.sql.*"%> 
<%@page import="javax.naming.*"%> 
<%@page import="javax.sql.DataSource"%> 

<html> 
<head> 
<title>Tomcat Connection Pool Test</title> 
</head> 

<body> 

<% 
try { 
       Context ctx = new InitialContext(); 
       Context envContext = (Context) ctx.lookup("java:/comp/env"); 
       DataSource ds = (DataSource) envContext.lookup("jdbc/server"); 
       Connection conn = ds.getConnection(); 
       out.println(conn); 
        conn.close(); 
} catch (NamingException e) { 
e.printStackTrace(); 
} catch (SQLException e) { 
         e.printStackTrace(); 
} 
%> 
</body> 
</html> 
      由于在Tomcat中配置了数据源,可以通过(DataSource)envCtx.lookup(''java:/comp/env/jdbc")来查找这个资料源。查找到这个资料源,就可以通过Connection conn = ds.getConnection()的方法来获得一个到数据库的连接。
      在这里测试代码一定要在jsp中使用
     同时并在tomcat的lib下和WebRoot/WEB-INF/lib下加入上驱动文件
     Tomcat配置时连接池驱动包必须放在tomcat目录下的lib里。这是因为Tomcat连接池是在Tomcat启动时就创建了,那里还没有加载项目里的驱动包。


posted @ 2011-10-11 08:23  IT专业户  阅读(218)  评论(0编辑  收藏  举报