上一篇中讨论了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驱动没有装。
下载驱动程序,下载之后,将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