我正在使用 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(...) 之前调用
。这会强制 JVM 加载该类,以便 JDBC 知道该类是您的连接类型的驱动程序。如果没有它,JDBC 就不知道您的数据库类型的驱动程序,因此会吐出“找不到合适的驱动程序”。Class.forName()
如果您使用 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/