一尘不染

org.apache.tomcat.jdbc.pool.DataSource不再位于tomcat 7 dbcp jar中?

tomcat

我正在尝试使用tomcat-dbcp.jar的7.0.30版本为tomcat-dbcp创建一个弹簧管理的独立池

但是,似乎在Tomcat文档(http://tomcat.apache.org/tomcat-7.0-doc/jdbc-
pool.html#Standalone)中引用的org.apache.tomcat.jdbc.DataSource类

<bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource"
    destroy-method="close">
    <property name="factory"
        value="org.apache.tomcat.jdbc.pool.DataSourceFactory" />
    <property name="type" value="javax.sql.DataSource" />
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/ym" />
    <property name="username" value="admin" />
    <property name="password" value="admin" />
    <property name="initialSize" value="5" />
    <property name="maxActive" value="10" />
</bean>

因此,根据Tomcat文档,此spring bean定义是正确的,但是,当我启动应用程序时,出现CNF异常:

Caused by: org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.apache.tomcat.jdbc.pool.DataSource] for bean with name 'dataSource' defined in class path resource [application-context.xml]; nested exception is java.lang.ClassNotFoundException: org.apache.tomcat.jdbc.pool.DataSource

我是不是超级愚蠢,在这里错过了明显的机会???


阅读 929

收藏
2020-06-16

共1个答案

一尘不染

org.apache.tomcat.jdbc.pool.DataSource包含在tomcat-jdbc.jar中,而不包含在tomcat-
dbcp.jar中。在Tomcat的JDBC连接池是公地DBCP,其中的tomcat-DBCP仅仅是一个重命名的版本替换。

jar文件tomcat-jdbc.jar不包含在所有Tomcat安装中(例如,它不包含在标准Debian / Ubuntu软件包中)。您可以从Maven
Central
下载它,也可以在Tomcat二进制分发归档文件中找到它。

2020-06-16