java - 在 apache-tomcat-6.0.36/lib 中加载的驱动程序,但仍然找不到合适的驱动程序

标签 java apache tomcat

我正在使用 axis 2 和 apache tomcat 在 eclipse helios 中学习 Web 服务。当我在 Eclipse 中将它们作为简单的 Java 类运行时,我有两个带有 Java 类的动态 Web 项目成功连接到两个数据库。 (我已将外部 jar 添加到项目的外部构建路径中)。但是当我在服务器上运行时,我得到一个错误:No suitable driver found。我知道我需要 load the necessary drivers进入 apache-tomcat-6.0.36/lib 我已经这样做了(并重新启动了服务器)。 (参见 No suitable driver found)。

我使用此语句在我的 Java 类中创建驱动程序:

Class.forName("org.postgresql.Driver"); //throws class not found exception w/message "com.postgresql.jdbc.Driver"
conn = DriverManager.getConnection(url, user, password);

为什么 apache“看不到”其/lib 文件夹中的 .jar 驱动程序?一些较旧的教程说将 .jars 放在 common/lib 中——但我在我的 apache tomcat 目录结构中看不到该文件夹​​。我该怎么做才能调试此问题?

最佳答案

根据您使用的 Java 版本(以及 JDBC 版本),您可能需要在调用 DriverManager.getConnection(...) 之前调用 Class.forName() 。这会强制 JVM 加载该类,以便 JDBC 知道该类是您的连接类型的驱动程序。如果没有它,JDBC 就不知道您的数据库类型的驱动程序,因此会吐出“找不到合适的驱动程序”。

如果您使用 Java 7(以及 JDBC 4.0)在 Eclipse 中运行您的类,则会自动加载在您的类路径中找到的驱动程序。对于 7 之前的 Java 版本(以及 4.0 之前的 JDBC),您必须手动注册您的驱动程序,如解释的那样。查看JDBC tutorial了解详情。

关于java - 在 apache-tomcat-6.0.36/lib 中加载的驱动程序,但仍然找不到合适的驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15926654/

相关文章:

java - 将 Accounts.UUID AND UUID = 与两个表一起使用时的 MySQL 语法问题

java - 从ArrayList中获取特定元素

java - Swing 组件在 JavaFX 环境中运行有什么具体要求吗?

php - 使用 PHP 在 Apache 服务器中部署 WebSockets

tomcat - 如何配置 tomcat 以使用多个应用程序,其中一个是后备应用程序?

java - 方法太多?

regex - 为子域动态强制使用 HTTPS 和非 WWW

apache - nginx 中级联index.php "try_files"

node.js - 使用 nginx 的 Websocket 代理不适用于 tomcat。

java - 摆脱 Tomcat 中的 Spring 日志