webentwicklung-frage-antwort-db.com.de

ClassNotFoundException Oracle.jdbc.driver.OracleDriver nur in Servlets unter Verwendung von Eclipse

Der folgende Code schlägt in der Zeile fehl:

Class.forName("Oracle.jdbc.driver.OracleDriver");

mit dem Fehler: 

Java.lang.ClassNotFoundException: Oracle.jdbc.driver.OracleDriver

Die beiden printlns drucken:

Wed_Jun_22_11:18:51_PDT_2005
false

Das lässt mich glauben, dass die Klasse existiert und gefunden werden kann. Auch diese exakt gleiche Klasse funktioniert in einer Nicht-Servlet-Anwendung.

Ich habe alles mehrmals neu gestartet und die Anwendung/das Servlet mehrmals neu erstellt. Alle Werte wurden hart codiert, um es einfach und kurz zu machen. 

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");
}

volles Servlet, das fehlschlägt:

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();
        }
    }

}

Diese Anwendung funktioniert:

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();
        }
    }

}

Ich benutze:

  • Eclipse JavaEE 1.4.2
  • Tomcat 7
  • jdk1.7
  • Oracle 11g R2
  • Windows 7 64bit
7
Geoff

Wahrscheinlich stellen Sie den Oracle-Treiber nicht mit Ihrer Anwendung bereit.

Sie haben mehrere Möglichkeiten:

  • Sie können die Treiberdosen in Ihrem WEB-INF/lib-Ordner ablegen
  • Sie exportieren es mit Ihrer Anwendung. -> Klicken Sie mit der rechten Maustaste auf Projekt -> Build Path-> Configure Build Path... -> Order and Export -> Überprüfen Sie die Treiber.
  • Platzieren Sie die Treiberjars in einem freigegebenen Ordner oder in einem Erweiterungsordner der Bibliothek Ihres Anwendungsservers. (Sie sollten jedoch mit Option eins oder zwei gehen.)
11
Udo Held

Sie müssen die Datei ojdbc6.jar in die Deployment Assembly des Projekts einfügen ...

  1. wählen Sie das Webprojekt aus, das die JSP-Datei enthält ...

  2. wählen Sie in der Menüleiste von Eclipse die Option Project aus

  3. wählen Sie Eigenschaften im Dropdown-Menü aus

  4. select Deployment Assembly

  5. Fügen Sie Ihre Datei ojdbc6.jar hinzu.

7
sri

Versuchen Sie dies, ändern Sie den Oracle.jdbc.driver.OracleTypes in Oracle.jdbc.OracleTypes.

0
user1250206