随笔 - 155  文章 - 68  评论 - 248  阅读 - 14万

tomcat5.5配置jndi和tomcat5.0的不同

关于Cannot create JDBC driver of class '' for connect URL 'null'解决方案

昨天,配置了一整天Eclipse,终于搞定。不过在配置好Tomcat的连接池之后,测试与SQL Server2000的连接的时候出现了Cannot create JDBC driver of class '' for connect URL 'null'的错误。下面把我的解决方案写出:注意:我使用的是JTDS驱动!

1.请保证你的SQL Server 2000已经打过SP4的补丁了。之前我出现Cannot create JDBC driver of class '' for connect URL 'null'的问题,原因就是没打SP4的补丁!

2.正确配置连接池!

常用的配置Tomcat连接池有两种方法:一是利用Tomcat的管理界面。二是修改Tomcat的配置文件。这里简单介绍通过修改Tomcat的配置文件配置连接池的方法。配置Tomcat连接池需要修改两个个地方,一是$Tomcat_HOME/conf/server.xml,$Tomcat_HOME是指Tomcat的安装目录,在server.xml 和之间配置下面代码。

例程 1-3 配置server.xml文件

<Context path="/Blog" docBase="Blog" debug="5" reloadable="true" crossContext="true">

           <Resource name="jdbc/blog" auth="Container"

           type="javax.sql.DataSource" driverClassName="net.sourceforge.jtds.jdbc.Driver"

           url="jdbc:jtds:sqlserver://localhost:1305;DatabaseName=blog"

           username="sa" password="" maxActive="20" maxIdle="10" maxWait="-1"/>

</Context>

另外一个需要修改的地方是$Tomcat_HOME/webapps/blog/WEB-INF/web.xml,在里web.xml文件里增加下面代码:

例程1-4 在web.xml文件里要增加的内容

<resource-ref>

                  <description>blog DB connect pool</description>

                  <res-ref-name>jdbc/blog</res-ref-name>

                  <res-type>javax.sql.DataSource</res-type>

                  <res-auth>Container</res-auth>

          </resource-ref>

下面是测试代码:

<%@ page contentType="text/html;charset=GBK"%>

<%@ page import="java.sql.*"%>

<html>

<body>

<%

   Context ctx=null;

   Connection cnn=null;

   Statement stmt=null;

   ResultSet rs=null;

   try   {

    ctx=new InitialContext();

    if(ctx==null) throw new Exception("没有匹配的环境");

    DataSource ds=(DataSource)ctx.lookup("java:comp/env/jdbc/connectDB");

    if(ds==null) throw new Exception("没有匹配数据库");    

   cnn=ds.getConnection();    stmt=cnn.createStatemen(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);

String sql="select * from blog_user";

rs=stmt.executeQuery(sql);

<%out.print("数据库操作成功,恭喜你");%>

<%

}catch(Exception ee){

     System.out.println("connect db error:"+ee.getMessage());

     return false;

}finally

   {

    if(rs!=null)rs.close();

    if(stmt!=null)stmt.close();

    if(cnn!=null)cnn.close();

    if(ctx!=null)ctx.close();

   }

%>

</body>

</html>

*****************************************************************

Cannot create JDBC driver of class '' for connect URL 'null'

在Tomcat 5.5.XX中,使用以前的配置方式,会出现这个问题。

解决方法:

将如下格式的Resource描述插入server.xml的<Context></Context>中:

<Resource name="jdbc/db" type="javax.sql.DataSource" username="sa" password="admin" driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver" maxIdle="2" maxWait="5000" url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jspdev" maxActive="4"/>

用以取代以前的配置方式:

    <Resource name="jdbc/db" type="javax.sql.DataSource"/>
    <ResourceParams name="jdbc/db">
     <parameter>
      <name>maxWait</name>
      <value>5000</value>
     </parameter>
     <parameter>
      <name>maxActive</name>
      <value>20</value>
     </parameter>
     <parameter>
      <name>password</name>
      <value>admin</value>
     </parameter>
     <parameter>
      <name>url</name>
      <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=jspdev</value>
     </parameter>
     <parameter>
      <name>driverClassName</name>
      <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
     </parameter>
     <parameter>
      <name>maxIdle</name>
      <value>20</value>
     </parameter>      
     <parameter>
      <name>removeAbandoned</name>
      <value>true</value>
     </parameter>
     <parameter>
      <name>removeAbandonedTimeout</name>
      <value>180</value>
     </parameter>
     <parameter>
      <name>username</name>
      <value>sa</value>
     </parameter>
    </ResourceParams>

posted on   blue  阅读(825)  评论(1编辑  收藏  举报
努力加载评论中...
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示