6

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 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

私は非常に愚かで、ここで明らかなことを見逃していますか???

4

1 に答える 1

8

クラスorg.apache.tomcat.jdbc.pool.DataSourceは tomcat-dbcp.jar ではなく tomcat-jdbc.jar に含まれています。Tomcat JDBC 接続プールはcommons-dbcp に代わるもので、tomcat-dbcp は単に名前が変更されたバージョンです。

jar ファイル tomcat-jdbc.jar は、すべての Tomcat インストールに含まれているわけではありません (たとえば、標準の Debian/Ubuntu パッケージには含まれていません)。Maven Centralからダウンロードするか、 Tomcat バイナリ配布アーカイブで見つけることができます。

于 2012-09-17T16:49:12.513 に答える