2013-03-06 54 views
0

下面的代码失败就行了:Class.forName("oracle.jdbc.driver.OracleDriver"); 出现错误:的ClassNotFoundException oracle.jdbc.driver.OracleDriver只在servlet中,使用Eclipse和Oracle

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 64位

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

任何建议将是伟大的。

回答

0

如果不查看应用程序和tomcat服务器,很难分辨究竟发生了什么问题。但是,您的问题有几点提示。

  1. NoClassDefFoundError总是让我觉得有一流的碰撞,而不是缺少jar文件。是洁具之间的区别ClassNotFoundNoClassDefFoundError

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

所以,检查你的Tomcat的lib以及tomcat的下所有的web应用程序,看看是否有到C的ojdbcXXX.jar

+0

我发现它运行你的应用程序。 :D 重新加载odbc jar文件。 – user2139271 2013-03-06 13:30:38

0

转到多个版本:\ Apache的Tomcat的7.0。 47 \ lib路径(这个路径可能不同 - >根据你粘贴Tomcat服务器的位置),然后通过ojdbc14.jar(如果它不包含)。

然后,重新启动Eclipse中的服务器上,然后服务器