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

bur*_*say 5 spring tomcat pooling

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

但是,似乎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>
Run Code Online (Sandbox Code Playgroud)

所以根据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
Run Code Online (Sandbox Code Playgroud)

我是超级愚蠢的,错过了这里显而易见的???

Dav*_*que 7

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二进制分发存档中找到它.

  • @grep它应该已经包含在Windows包中.查看`lib`文件夹. (2认同)