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

时间:2012-09-17 15:50:37

标签: spring tomcat pooling

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

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

<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 doc,这个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

我是超级愚蠢而且在这里错过了明显的???

1 个答案:

答案 0 :(得分:7)

org.apache.tomcat.jdbc.pool.DataSource包含在tomcat-jdbc.jar中,而不是tomcat-dbcp.jar中。 Tomcat JDBC Connection Pool是commons-dbcp的替代品,其中tomcat-dbcp只是一个重命名的版本。

jar文件tomcat-jdbc.jar未包含在所有Tomcat安装中(例如,它未包含在标准Debian / Ubuntu软件包中)。您可以从Maven Central下载,也可以在Tomcat binary distribution存档中找到它。