簡體   English   中英

oracle.jdbc.driver.OracleDriver ClassNotFoundException

[英]oracle.jdbc.driver.OracleDriver ClassNotFoundException

這是我收到錯誤的代碼。 我的classes12.jar已作為外部 jar 導入。

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginAction extends HttpServlet {
Connection conn;
Statement stmt;
ResultSet rs;
String query = "SELECT * FROM v_urja_login";
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    PrintWriter out = response.getWriter();
    out.println("Hello");
    String u_name = request.getParameter("uname");
    String u_pass = request.getParameter("upass");
    out.println(u_name);
    out.println(u_pass);
    try{
        Class.forName("oracle.jdbc.driver.OracleDriver");
        conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","urja","urja");
        stmt = conn.createStatement();
        rs = stmt.executeQuery(query);
    }catch(SQLException sex){
        sex.printStackTrace();
    } catch (ClassNotFoundException cnf) {
        cnf.printStackTrace();
    }
}
}

堆棧跟蹤:

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at LoginAction.doPost(LoginAction.java:27)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:619)
   Class.forName("oracle.jdbc.driver.OracleDriver");

此行導致ClassNotFoundException ,因為您尚未將ojdbc14.jar文件放置在項目的 lib 文件夾中。 或者您還沒有設置所需 jar 的classpath

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

只需將ojdbc14.jar添加到您的類路徑中。

下面是在eclipse中添加ojdbc14.jar的步驟:

1) 在你的項目中

2) 圖書館

3) 右鍵單擊​​ JRE 系統庫

4) 構建路徑

5) 選擇配置構建路徑

6) 單擊添加外部 JAR...

7) C:\\oraclex\\app\\oracle\\product\\10.2.0\\server\\jdbc\\lib

8) 在這里你會得到 ojdbc14.jar

9) 在這里選擇

10) 打開

11) 好的

保存並運行程序,您將獲得輸出。

在 Eclipse 中,右鍵單擊您的應用程序

運行方式 -> 運行配置 ->類型過濾器文本框中選擇您的服務器

然后在Bootstrap Entries下的 Classpath 添加您的classes12.jar 文件並單擊Apply
現在,運行文件......這對我有用!!

方法一:下載ojdbc.jar

將 ojdbc6.jar 添加到部署程序集。 右鍵項目->屬性->選擇部署程序集->點擊'添加'->選擇'Archives from File System'->瀏覽到保存ojdbc6.jar的文件夾->添加jar->點擊完成-> 應用/確定。

方法二:

如果您想將 ojdbc.jar 添加到您的 maven 依賴項,請點擊此鏈接: http ://www.mkyong.com/maven/how-to-add-oracle-jdbc-driver-in-your-maven-local-repository / . . 即使您使用的是 maven 項目,也沒有必要將 ojdbc 添加到 maven 依賴項(方法 2),方法 1(直接添加到部署程序集)工作得很好。

嘗試通過服務器庫“C:\\apache-tomcat-7.0.47\\lib”添加ojdbc6.jar或其他版本,

然后在eclipse中重啟服務器。

1.右鍵單擊您的java項目。

2.選擇“運行方式”。

3.選擇“運行配置...”。

4.這里在頁面左側選擇您的服務器,然后您會在右側看到“CLASS PATH”選項卡,只需單擊它。

5.點擊“USER ENTRIES”並選擇“ADD EXTERNAL JARS”。

6.選擇“ojdbc14.jar”文件。

7. 單擊應用。

8. 單擊運行。

9.最后重啟你的服務器,然后它就會被執行。

在日食中,

在 servlet 中使用 JDBC 時,驅動程序 jar 必須放在項目的 WEB-INF/lib 目錄中。

沒有遇到問題,在 pom 文件中添加 Ojdbc8 依賴項后。

您可以添加一個具有上述指定類的 JAR 存在已安裝的 Java 版本支持的 egojdbc jar,並確保您已將其添加到類路徑中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM