将 JDBC 驱动程序发送到 WAR for Tomcat 7

Posted

技术标签:

【中文标题】将 JDBC 驱动程序发送到 WAR for Tomcat 7【英文标题】:Ship JDBC driver into WAR for Tomcat 7 【发布时间】:2012-08-15 20:13:20 【问题描述】:

在更新到 Tomcat 7(从 Tomcat 6)之前,我能够使用 WAR 文件发布 mysql JDBC 驱动程序。我在使用 Tomcat 6 创建 JNDI 数据源时没有遇到任何问题(可能是重新部署时内存泄漏)。

但是,我正在尝试使用新的连接池在 Tomcat 7 上部署相同的 WAR(使用 MySql 驱动程序)并获得: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

我知道更适合 JDBC 驱动程序的位置是 CATALINA_HOME/lib

新的连接池是否绝对要求所有 JDBC 驱动程序都在 CATALINA_HOME/lib 中?或者一些配置可以让我在 WAR 中发布驱动程序。

【问题讨论】:

【参考方案1】:

是的。驱动应该在CATALINA_HOME\lib 特别是如果你想使用Tomcat的池

发件人:Tomcat 7 Connection Pooling

在继续之前,不要忘记将 JDBC 驱动程序的 jar 复制到 $CATALINA_HOME/lib.

【讨论】:

谢谢!虽然这可行,但我仍然很困惑为什么 tomcat 6 允许捆绑而 tomcat 7 不允许。

以上是关于将 JDBC 驱动程序发送到 WAR for Tomcat 7的主要内容,如果未能解决你的问题,请参考以下文章

JDBC 驱动程序是不是应该包含在 WAR 中?

部署到linux上的tomcat生成的war项目的jdbc的

Web项目打成war包部署到tomcat时报MySQL Access denied for user 'root'@'localhost' (using passwor

Tomcat 8 上 jTDS JDBC 驱动程序的 AbstractMethodError

jdbc 批处理性能

通过 jdbc 驱动程序和 h2console.war 连接到 postgresql