2010-06-10 11:26:53
第一篇博客。先弄个最近在玩的东东上来说说吧。
如标题上所说,怎样才能配置好连接池而不报异常。突然报出 Cannot create JDBC driver of class '' for connect URL 'null' ,让你头都大。
1、首先要将需要用到数据库的驱动包拷贝到 tomcat/common/lib 目录下,这样就不会包找不到驱动程序的错误。(刚开始我将包拷贝到了 tomcat/common/server 目录下,结果就报找不到驱动程序的错误)
2、其次,配置 tomcat/conf/server.xml 文件。 Tomcat 的版本 上配置有所区别,
比如5.0.X 的版本
<Resource name="jdbc/mldn" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/mldn"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>maxActive</name> <value>100</value> </parameter> <parameter> <name>maxIdle</name> <value>30</value> </parameter> <parameter> <name>maxWait</name> <value>5000</value> </parameter> <parameter> <name>username</name> <value>root</value> </parameter> <parameter> <name>password</name> <value>123456</value> </parameter> <parameter> <name>driverClassName</name> <value>org.gjt.mm.mysql.Driver</value> </parameter> <parameter> <name>url</name> <value>jdbc:mysql://localhost:3306/mldn</value> </parameter> </ResourceParams>
5.5 以上
<Resource name="jdbc/mldn" auth="Container" type="javax.sql.DataSource" factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="100" maxIdle="30" maxWait="5000" username="root" password="123456" driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost:3306/mldn" />
而6.0 版本以上则更加灵活,可以将5.5上的代码 做成一个 context.xml 文件 放到你的工程根目录下META-INF文件下
3、 修改你工程目录文件WEB-INF下的 web.xml 文件
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <resource-ref> <description>DB Connections</description> <res-ref-name>jdbc/mldn</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app>
4、再写个测试 MyJsp.jsp 来测试一下连接池是否配置成功
<%@ page language="java" pageEncoding="UTF-8"%> <%@page contentType="text/html; charset=UTF-8"%> <%@page import="java.sql.*" %> <%@page import="javax.naming.*" %> <%@page import="javax.sql.DataSource" %> <head> <title>Tomcat6.0 JNDI 测试!</title> </head> <body> This is my JSP page. <br> JNDI配置测试开始 ... <br> <% try { //初始化 Context 上下文对象; Context ctx = new InitialContext(); Context envContext = (Context)ctx.lookup("java:/comp/env"); DataSource ds = (DataSource)envContext.lookup("jdbc/mldn"); //查找配置 //方法二: //DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/mldn"); Connection conn = ds.getConnection(); conn.close(); out.println("JNDI数据源配置成功了"); } catch (NamingException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } %> </body> </html>
启动tomcat服务,成功运行MyJsp.jsp 而不报异常。恭喜你,配置成功了。