`

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

阅读更多

上一篇中讨论了Name jdbc is not bound in this Context 的解决方法,配置置好了web.xml之后。如果MyFirstWeb\Tomcat\conf\server8080.xml没有配置好,就会出现“Cannot create JDBC driver of class '' for connect URL 'null'”这个错误。如果是发布环境,那就应该是server.xml。

Tomcat先找到web.xml下的<resource-ref>,然后再找server.xml下面的<Resource>。如果没有找到<Resource name=”JDBC/TestDB”>,或者名字错了,则会报“Cannot create JDBC driver of class '' for connect URL 'null'”错误。

一般情况下,配置如下:

在<host>< Context></ Context></Host>中加入

<ResourceParams name="JDBC/TestDB">

 <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>10000</value>

 </parameter>

 <parameter>

  <name>username</name>

  <value>sa</value>

 </parameter>

 <parameter>

  <name>password</name>

  <value>sa</value>

 </parameter>

<parameter>

  <name>driverClassName</name>

<value>com.microsoft.jdbcx.sqlserver.SQLServerDataSource</value>

</parameter>

<parameter>

  <name>url</name>

<value>jdbc:microsoft:sqlserver://localhost:1430;DataBaseName=test</value>

</parameter>

</ResourceParams>

如果是tomcat5.5这样配置之后依然会报“Cannot create JDBC driver of class '' for connect URL 'null'”错误。

解决的方法是将上述配置该为下面这种格式:

<Resource

    name="JDBC/TestDB"

    type="javax.sql.DataSource"

    password="sa"

    driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"

    maxIdle="2"

    maxWait="5000"

    username="sa"

    url="jdbc:microsoft:sqlserver://localhost:1430;databaseName=test"

    maxActive="4"/>

 

另外还有两种错误顺便提一下:

1.Cannot load JDBC driver class 'com.microsoft.jdbc.sqlserver.SQLServerDriver'

这是因为你的jdbc驱动没有装。

你可以到 http://www.microsoft.com/downloads/details.aspx?FamilyID=ee91ad1a-1ee4-49e1-95ea-e3f0e39114a9&DisplayLang=en

下载驱动程序,下载之后,将msbase.jar,mssqlserver.jar,msutil.jar拷贝到tomcat的安装目录下的 common\lib文件夹下面。

2.Cannot create resource instance

这是因为你的

<Resource name="JDBC/TestDB"

    auth="Container"

    type="javax.sql.DataSource"

……..

/>

你的type写的不对。

比如你写成:

<Resource name="jdbc/MyDS" auth="Container" type="com.microsoft.jdbcx.sqlserver.SQLServerDataSource"/>

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/huzy204/archive/2008/02/23/2115075.aspx

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics