解决Cannot create...class "'' for connect url "null"

本文解决因Tomcat版本不同导致的数据源配置不兼容问题。详细对比了从Tomcat5.0到5.5版本中Server.xml配置文件内数据源配置的变化,并提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

[b]说明:本文补充在同题文章的不足,如按同题文章中的方法改过后人仍出现所述问题,那么可看此文章,希望对大家有所帮助。[/b]

直入正题,在各个库文件完整的情况下,在执行页面时如出现如题的提示,有一可能原因是因为Tomcat版本不同而导致的配置文件的数据源配置的书写方式不兼容而导致的。如Tomcat5.0版本的Server.xml配置文件中数据源部分可如下书写:
<GlobalNamingResources>
<Resource name="jdbc/bookdb" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/bookdb">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>

<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>

<parameter>
<name>maxIdle</name>
<value>5</value>
</parameter>

<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>

<!-- MySql database username and password for db connections -->
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value>dancing</value>
</parameter>

<!-- classname for jdbcdriver -->
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>

<!-- the connection url for connecting to mysql database -->
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/bookdb</value>
</parameter>
</ResourceParams>
</GlobalNamingResources>

而在<Context>标签部分书写对数据员的链接:

<context .....>
<ResourceLink global="jdbc/bookdb" name="jdbc/bookdb" type="javax.sql.DataSource"/>
</Context>

但是在Tomcat5.5版本中的数据源配置部分需得将所有的参数部分写到<Resource>标签中,如下:

</GlobalNamingResources>
<Resource name="jdbc/bookdb"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory"
maxActive="50"
maxIdle="5"
maxWait="10000"
username="root"
password="dancing"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/bookdb"
/>
</GlobalNamingResources>
在<Context>标签部分仍如前方式书写,则如此改动后当可消除由此所引起的如题所述问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值