ClassNotFoundException oracle.jdbc.driver.OracleDriver仅在servlet中使用Eclipse
下面的代码失败了:
Class.forName("oracle.jdbc.driver.OracleDriver");
有错误:
java.lang.ClassNotFoundException:oracle.jdbc.driver.OracleDriver
两个println
的打印:
Wed_Jun_22_11:18:51_PDT_2005 false
这让我觉得这个类存在并且可以找到。 此完全相同的类也适用于非servlet应用程序。
我已多次重启所有内容并多次重新生成应用程序/ servlet。 所有值都经过硬编码,使其简单易行。
private static Connection getDBConnection() throws Exception { System.out.println(oracle.jdbc.driver.OracleDriver.BUILD_DATE); System.out.println(Class.class.desiredAssertionStatus()); //load the driver Class.forName("oracle.jdbc.driver.OracleDriver"); return DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "SYSTEM", "pass"); }
失败的完整servlet:
package servletClass_3; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class OneMoreBookStore */ @WebServlet("/OneMoreBookStore") public class OneMoreBookStore extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ private static Connection getDBConnection() throws Exception { System.out.println(oracle.jdbc.driver.OracleDriver.BUILD_DATE); System.out.println(Class.class.desiredAssertionStatus()); //load the driver Class.forName("oracle.jdbc.driver.OracleDriver"); return DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "SYSTEM", "pass"); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { Connection con = getDBConnection(); } catch (Exception e) { e.printStackTrace(); } } }
此应用程序有效:
package servletClass_3; import java.sql.Connection; import java.sql.DriverManager; public class DBConnect { private static Connection getDBConnection() throws Exception { System.out.println(oracle.jdbc.driver.OracleDriver.BUILD_DATE); System.out.println(Class.class.desiredAssertionStatus()); //load the driver Class.forName("oracle.jdbc.driver.OracleDriver"); return DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "SYSTEM", "pass"); } public static void main(String[] args) { try { Connection con = getDBConnection(); System.out.println("connection worked"); con.close(); } catch (Exception e) { e.printStackTrace(); } } }
我在用着:
- Eclipse JavaEE 1.4.2
- 雄猫7
- jdk1.7
- Oracle 11g R2
- Windows 7 64位
可能您没有在应用程序中部署oracle驱动程序。
你有几个选择:
- 您可以将驱动程序jar放在
WEB-INF/lib
文件夹中 - 您可以随应用程序一起导出它。 – >右键单击项目 – >
Build Path
– >Configure Build Path...
– >Order and Export
– >检查驱动程序。 - 将驱动程序jar放在应用程序服务器的共享或库扩展文件夹中。 (你应该选择一两个选项。)
您必须在项目的部署程序集中包含ojdbc6.jar文件…
-
选择包含jsp文件的Web项目…
-
在Eclipse的菜单栏中选择Project选项卡
-
在下拉菜单中选择属性
-
选择部署程序集
-
在其中添加ojdbc6.jar文件。
试试这个,将oracle.jdbc.driver.OracleTypes
更改为oracle.jdbc.OracleTypes
- Tomcat为其他开放日食项目中的类抛出ClassNotFoundexception
- 在代码上获取ClassNotFoundException:“Class.forName(”com.microsoft.sqlserver.jdbc.SqlServerDriver“);”
- ClassNotFoundException在修改后的SimpleShortestPathsVertex上运行GiraphRunner
- 如何解决此错误引起:java.lang.ClassNotFoundException
- 如何设置rmiregistry使用的类路径?
- classNotFound在eclipse中在Tomcat上使用JDBC进行MYSQL时出现exception
- 通过CLI执行testng.xml时出错:无法找到或加载主类org.testng.TestNG
- 用于eclipse的tomcat中的servlet的java.lang.ClassNotFoundException
- CodenameOne在构建后停止工作