java - Tomcat 无法识别 MySQL .jar 库

标签 java mysql tomcat

我尝试了几种不同的方法,以便 Tomcat 在运行我的 Web 应用程序时加载 MySQL 驱动程序。我使用的是 Ubuntu 8.04,库来自 libmysql-java 包。它们位于如下所示的目录中:

~$ ls /usr/share/java/mysql*
/usr/share/java/mysql-connector-java-5.1.5.jar

我的 CLASSPATH 包含这个文件:

~$ echo $CLASSPATH
.:/usr/lib/jvm/java-6-sun/bin:/usr/local/tomcat/lib/servlet-api.jar:/usr/share/java/mysql-connector-java-5.1.5.jar

我什至在我的 Web 应用程序的 WEB-INF/lib/目录中放置了 .jar 文件的副本:

/usr/local/tomcat/webapps/ohms/WEB-INF/lib$ ls
mysql-connector-java-5.1.5.jar

进行这些更改后,我重新启动 Tomcat,重新编译我的类,再次重新启动 Tomcat。此外,我正在使用 import java.sql.*;

导入必要的库

但是当它运行 Class.forName("com.mysql.jdbc.Driver ").newInstance();

我在这里做错了什么?

最佳答案

将其放在 TOMCAT_HOME/lib 中。 (我似乎记得在旧版本的 Tomcat 上,它是 TOMCAT_HOME/server/lib?)

它不会在 WEB-INF/lib 中工作,因为容器需要访问库,而且,这是将它放在一个 Web 应用程序的类加载器中,而不是容器中。虽然我会想象 CLASSPATH 方法会起作用,但这不是执行此操作的标准方法。也许还有其他一些障碍阻止它工作。

关于java - Tomcat 无法识别 MySQL .jar 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1610277/

相关文章:

java - 返回java中的最大值

java - 带有参数/变量的存储过程 - 如何从过程执行中获取结果?

java - 从 SQL 中同一行的另一列获取值

mysql存储过程异常: One line gets executed,又跳过了?

java - 如何修复 "java.lang.NoClassDefFoundError: Could not initialize class com.mongodb.MongoClientOptions"

spring-security 不会使 http session 失效

java - BaseAdapter 中的 List<Map<String, List<>>>,Android

java - "Could not find main method from given launch configuration"使用Java+Scala+Slick2D时

SQL 左连接查询运行非常慢

java - 在生产或测试中运行时,Grails 不使用我的数据源?