Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

org.apache.tomcat.jdbc.pool.DataSource is no longer in the tomcat 7 dbcp jar?

I am trying to create a spring-managed standalone pool for tomcat-dbcp using the version 7.0.30 of tomcat-dbcp.jar

However it seems the org.apache.tomcat.jdbc.DataSource class that is referred to in the Tomcat's documentation (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>

So this spring bean definition is correct according to Tomcat doc, however when I start the app up, I get CNF exception:

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

Am I being super stupid and missing the obvious here???

like image 742
buraksay Avatar asked Sep 17 '12 15:09

buraksay


1 Answers

Class org.apache.tomcat.jdbc.pool.DataSource is included in tomcat-jdbc.jar, not tomcat-dbcp.jar. The Tomcat JDBC Connection Pool is a replacement for commons-dbcp, of which tomcat-dbcp is just a renamed version.

The jar file tomcat-jdbc.jar is not included in all Tomcat installations (e.g. it is not included in the standard Debian/Ubuntu package). You can download it from Maven Central or you can find it in the Tomcat binary distribution archive.

like image 124
David Levesque Avatar answered Nov 02 '22 20:11

David Levesque