0

下面的代码在线失败:Class.forName("oracle.jdbc.driver.OracleDriver"); 出现错误:

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

这两个 printlns 打印:Wed_Jun_22_11:18:51_PDT_2005 false这让我觉得这个类存在并且可以找到。同样,这个完全相同的类也适用于非 servlet 应用程序。

我已经多次重新启动所有内容并多次重新生成应用程序/servlet。所有值都经过硬编码,使其简单而简短。

我正在使用:Eclipse JavaEE 1.4.2 Tomcat 7 jdk1.7 Oracle 11g R2 Windows 7 64bit

我已经在 web-inf 中添加了 jar 文件。但它仍然给出以下错误:java.lang.NoClassDefFoundError: oracle/jdbc/driver/OracleDriver

任何建议都会很棒。

4

2 回答 2

0

如果不查看您的应用程序和 tomcat 服务器,很难判断到底出了什么问题。但是有一些提示可以解决您的问题。

  1. NoClassDefFoundError总是让我觉得有类冲突而不是缺少 jar 文件ClassNotFound注意和之间的区别NoClassDefFoundError

  2. tomcat 以与普通 java 应用程序不同的方式加载类。通常情况下,Java 应用程序中的类加载器将遵循委托模式,这意味着子类加载器将始终将类加载作业委托给其父类加载器。但是tomcat并不完全遵循这一点。所以它将自己加载(查找源文件,读取字节码并创建类Class的实例)。

所以检查你的tomcat lib以及tomcat下的所有web应用,看看是否有多个版本的ojdbcXXX.jar

于 2013-03-06T10:20:22.137 回答
0

通过 C:\apache-tomcat-7.0.47\lib 路径(此路径可能不同 -> 基于您粘贴 Tomcat 服务器的位置)然后通过 ojdbc14.jar 如果它不包含。

然后在 Eclipse 中重新启动服务器,然后在服务器上运行您的应用程序

于 2013-11-20T08:02:12.567 回答