我配置tomcat的连接池,我使用的版本是tomcat   5.0.28     
  数据库sqlserver2000 名字为:test
  驱动:已经拷贝到tomcat lib下在tomcat server.xml 中
配置如下:
 <Host name="test" appBase="C:\Documents and Settings\Administrator\workspace\test\WebRoot"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false"> <Context> <Resource name="jdbc/bn" auth="Container" type="javax.sql.DataSource" > 
 </Resource>
  <ResourceParams name="jdbc/bn">
  <parameter>
   <name>maxActive</name>
   <value>100</value>
  </parameter>
  <parameter>
   <name>maxIdle</name>
   <value>30</value>
  </parameter>
  <parameter>
   <name>maxWait</name>
   <value>10000</value>
  </parameter>
  <parameter>
   <name>username</name>
   <value>sa</value>
  </parameter>
  <parameter>
   <name>password</name>
   <value></value>
  </parameter>
  
  <parameter>
   <name>driverClassName</name>
   <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
  </parameter>
  <parameter>
   <name>url</name>
   <value>jdbc:microsoft:sqlserver://127.0.0.1;DatabaseName=Test</value>
  </parameter>
  </ResourceParams></Context> </Host>
在tomcat web.xml 中
配置如下:
 tomcat\conf\web.xml     
  加入   
  <resource-ref>   
                <description>DB   Connection</description>   
                      <res-ref-name>jdbc/bn</res-ref-name>   
                      <res-type>javax.sql.DataSource</res-type>   
                      <res-auth>Container</res-auth>   
  </resource-ref>   测试代码为:
<%
DataSource ds=null;
Connection conn=null;
try{
Context initCtx=new InitialContext();
Context envCtx=(Context)initCtx.lookup("java:comp/env");
//从Context中lookup数据源
ds=(DataSource)envCtx.lookup("jdbc/bn");
if(ds!=null)
{

out.println("已经获得datasource!");
out.println("<br>");

    conn=ds.getConnection();
out.println("rst前");
out.println("<br>");
Statement stmt=conn.createStatement();

ResultSet rst=stmt.executeQuery("select * from book");
out.println("以下是从数据库中读取出来的数据");
while(rst.next())
{
out.println("bookname:"+rst.getString("bookname"));
out.println("<br>");
}
}
else
out.println("连接失败");
}catch(Exception ne)
{
out.println(ne);
}
 %>页面结果为:已经获得datasource! 
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null' 
 看了好多帖子也没解决,求答 谢谢!!!
 

解决方案 »

  1.   

    你到http://javado.blog.163.com里面看看,我曾经写过具体的操作步骤。
    对照一下你自己写的
      

  2.   

    这个不是驱动找不到的原因,你可以看一下它创建数据连接池代码里面抛出异常的那段
        Driver driver = null;
        try {
          driver = DriverManager.getDriver(this.url);
        } catch (Throwable t) {
          String message = "Cannot create JDBC driver of class '" + ((this.driverClassName != null) ? this.driverClassName : "") + "' for connect URL '" + this.url + "'";      this.logWriter.println(message);
          t.printStackTrace(this.logWriter);
          throw new SQLNestedException(message, t);
        }所以是tomcat找不到配置信息,XML中的url属性没有获取到,那就是你配置的问题了。我在网上没有找到5.0的配置文档。我也是同样的问题,不过我的是6.0的,6.0的配置和你上面的这个不同。官方的代码是
    <Resource name="jdbc/myoracle" auth="Container"
                  type="javax.sql.DataSource" driverClassName="oracle.jdbc.OracleDriver"
                  url="jdbc:oracle:thin:@127.0.0.1:1521:mysid"
                  username="scott" password="tiger" maxActive="20" maxIdle="10"
                  maxWait="-1"/> 我按照这个解决了。所以推测你的5.0版本的可能配置不是你上面的这种格式,你可以查查。好运