我正在开发一个应用程序,并且我的应用程序使用 mysql 作为数据库。因此,我将 mysql jar 文件包含在应用程序的 WEB-INF/loib altinda 中。 c3p0 库仍然无法加载用于池化的 mysql 数据库驱动程序。
> 2016-11-15 15:32:23,464
> [C3P0PooledConnectionPoolManager[identityToken->188ezpw9ksw669r1vn17m6|1032a547]-HelperThread-#8]
> DEBUG org.apache.catalina.loader.WebappClassLoader-
> loadClass("com.mysql.jdbc.Driver", false) 2016-11-15 15:32:23,464
> [C3P0PooledConnectionPoolManager[identityToken->188ezpw9ksw669r1vn17m6|1032a547]-HelperThread-#8]
> DEBUG org.apache.catalina.loader.WebappClassLoader- Searching local
> repositories 2016-11-15 15:32:23,464
> [C3P0PooledConnectionPoolManager[identityToken->188ezpw9ksw669r1vn17m6|1032a547]-HelperThread-#8]
> DEBUG org.apache.catalina.loader.WebappClassLoader-
> findClass("com.mysql.jdbc.Driver") 2016-11-15 15:32:23,464
> [C3P0PooledConnectionPoolManager[identityToken->188ezpw9ksw669r1vn17m6|1032a547]-HelperThread-#8]
> DEBUG org.apache.catalina.loader.WebappClassLoader- Delegating to
> parent classloader at end:
> org.apache.catalina.loader.StandardClassLoader@21d195ca Nov 15, 2016
> 3:32:23 PM com.mchange.v2.log.slf4j.Slf4jMLog$Slf4jMLogger$WarnLogger
> log WARNING: Could not load driverClass "com.mysql.jdbc.Driver"
> java.lang.ClassNotFoundException: "com.mysql.jdbc.Driver" at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
> at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
> at java.lang.Class.forName0(Native Method) at
> java.lang.Class.forName(Class.java:190) at
> com.mchange.v2.c3p0.DriverManagerDataSource.ensureDriverLoaded(DriverManagerDataSource.java:143)
> at
> com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:173)
> at
> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:220)
> at
> com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:206)
> at
> com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:203)
> at
> com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1138)
> at
> com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1125)
> at
> com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44) at
> com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1870)
> at
> com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)
最佳答案
如果您已通过 JNDI 配置数据库连接,则驱动程序可能必须位于 tomcat/lib
中,而不是位于 Web 应用程序的 lib 目录中
关于java - Apache Tomcat 无法加载 Mysql 驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40611304/