java - Apache Tomcat 无法加载 Mysql 驱动程序

标签 java mysql apache tomcat7 classpath

我正在开发一个应用程序,并且我的应用程序使用 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/

相关文章:

java - 调用 ImageJ 工具栏

java - 如何单击列表 selenium2 中的链接

mysql - 无法在mysql中复制表

java - 无法从上下文中获取有效的数据源。获取连接 URL '' 异常的 'null'

Apache Tomcat 6 显示访问被拒绝错误而不是身份验证质询

regex - 替换搜索查询字符串使其成为 SEF

java - 如何在广播接收器上使用 if else 语句?

java - 在 Java 中将希腊语转换为大写

mysql - 选择 X 组中最大的 N 条记录

linux - Codeigniter 应用程序在本地主机 ubuntu 上显示空白页面