我正在尝试使用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
我是超级愚蠢而且在这里错过了明显的???
答案 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存档中找到它。