急救,一个关于数据库连接池的问题,在线等!!!

04-10-18 peiqiang
我最近在配置数据库连接池可以一值出现问题,org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'

我用tomcat做服务器,db2做数据库,jdbc驱动程序db2java.jar也已经拷贝到tomcat\common\lib目录下了,配置如下:

conf/server.xml中的配置如下:
<Context path="" docBase="jspdev" debug="5" reloadable="true"
crossContext="true">

<Resource name="jdbc/test" auth="Container" type="javax.sql.DateSource"/>
<ResourceParams name="jdbc/test">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>COM.ibm.db2.jdbc.app.DB2Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:db2:jspdev</value>
</parameter>
<parameter>
<name>username</name>
<value>peiqiang</value>
</parameter>
<parameter>
<name>password</name>
<value>811129</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>
</ResourceParams>
</Context>

webapps\jspdev\WEB-INF\web.xml中的配置如下:

<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

jsp测试也面如下:
<%@ page contentType="text/html;charset=gb2312" language="java" import="javax.naming.Context,javax.sql.DataSource,javax.naming.InitialContext,java.sql.*"%>

<%
DataSource ds=null;
try
{

Context initCtx=new InitialContext();

Context envCtx=(Context)initCtx.lookup("java:comp/env");

ds=(DataSource)envCtx.lookup("jdbc/test");

if(ds!=null)
{
out.println("connection is ok!");
out.println("<br>");

Connection conn=ds.getConnection();
System.out.println("bbbbbbbb");

Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from category");
while(rs.next())
{
out.println(rs.getString("catid"));
out.println("<br>");
}
}
else
out.println("fail!");
}
catch(Exception e){out.println(e);}
%>

我测试了一下执行到Connection conn=ds.getConnection();这一句话时就出现了异常,往高手指点啊!!!!!!!!!!!!!!!!!!!!!!!!!!!谢谢!!!!!!!!!!!!!

winwu
2004-10-19 09:06
你没有把你的数据源和你的context捆绑在一起..所以当你用这个CONTEXT的时候..他就会找不到你的URL