2012-12-16 7 views
16

ich ein Java-Servlet-Programm geschrieben, aber wenn ich es laufen, war es, welche die Ausnahmejava.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

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

Mein Code ist

package skypark; 

import java.io.*; 
import javax.servlet.*; 
import java.text.*; 
import javax.servlet.http.*; 
import java.sql.*; 
import java.sql.Date; 

public class Registration extends HttpServlet { 

    private static final long serialVersionUID = 1L; 

    public static Connection prepareConnection() throws ClassNotFoundException, SQLException { 
     String dcn = "oracle.jdbc.driver.OracleDriver"; 
     String url = "jdbc:oracle:thin:@JamesPJ-PC:1521:skypark"; 
     String usname = "system"; 
     String pass = "tiger"; 
     Class.forName(dcn); 
     return DriverManager.getConnection(url, usname, pass); 
    } 

    public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 
     resp.setContentType("text/html"); 
     PrintWriter out = resp.getWriter(); 

     try { 
      String phone1, dofb, date1, month, year, uname, fname, lname, address, city, state, country; 
      String pin, email, password, gender, lang, qual, relegion, privacy, hobbies, fav; 

      uname = req.getParameter("uname"); 
      fname = req.getParameter("fname"); 
      lname = req.getParameter("lname"); 
      date1 = req.getParameter("date"); 
      month = req.getParameter("month"); 
      year = req.getParameter("year"); 
      address = req.getParameter("address"); 
      city = req.getParameter("city"); 
      state = req.getParameter("state"); 
      country = req.getParameter("country"); 
      pin = req.getParameter("pin"); 
      email = req.getParameter("email"); 
      password = req.getParameter("password"); 
      gender = req.getParameter("gender"); 
      phone1 = req.getParameter("phone"); 

      lang = ""; 
      qual = ""; 
      relegion = ""; 
      privacy = ""; 
      hobbies = ""; 
      fav = ""; 

      dofb = date1 + "-" + month + "-" + year; 
      int phone = Integer.parseInt(phone1); 
      DateFormat formatter; 
      java.util.Date dob; 
      formatter = new SimpleDateFormat("dd-MM-yy"); 
      dob = formatter.parse(dofb); 

      Connection con = prepareConnection(); 
      String Query = "Insert into regdetails values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; 
      PreparedStatement ps = con.prepareStatement(Query); 

      ps.setString(1, uname); 
      ps.setString(2, fname); 
      ps.setString(3, lname); 
      ps.setDate(4, (Date) dob); 
      ps.setString(5, address); 
      ps.setString(6, city); 
      ps.setString(7, state); 
      ps.setString(8, country); 
      ps.setString(9, pin); 
      ps.setString(10, lang); 
      ps.setString(11, qual); 
      ps.setString(12, relegion); 
      ps.setString(13, privacy); 
      ps.setString(14, hobbies); 
      ps.setString(15, fav); 
      ps.setString(16, gender); 

      int c = ps.executeUpdate(); 

      String query = "insert into passmanager values(?,?,?,?)"; 
      PreparedStatement ps1 = con.prepareStatement(query); 

      ps1.setString(1, uname); 
      ps1.setString(2, password); 
      ps1.setString(3, email); 
      ps1.setInt(4, phone); 

      int i = ps1.executeUpdate(); 

      if (c == 1 || c == Statement.SUCCESS_NO_INFO && i == 1 || i == Statement.SUCCESS_NO_INFO) { 
       out.println("<html><head><title>Login</title></head><body>"); 
       out.println("<center><h2>Skypark.com</h2>"); 
       out.println("<table border=0><tr>"); 
       out.println("<td>UserName/E-Mail</td>"); 
       out.println("<form action=login method=post"); 
       out.println("<td><input type=text name=uname></td>"); 
       out.println("</tr><tr><td>Password</td>"); 
       out.println("<td><input type=password name=pass></td></tr></table>"); 
       out.println("<input type=submit value=Login>"); 
       out.println("</form></body></html>"); 
      } else { 
       out.println("<html><head><title>Error!</title></head><body>"); 
       out.println("<center><b>Given details are incorrect</b>"); 
       out.println(" Please try again</center></body></html>"); 
       RequestDispatcher rd = req.getRequestDispatcher("registration.html"); 
       rd.include(req, resp); 
       return; 
      } 
     } catch (ClassNotFoundException cnfe) { 
      out.println("<html><head><title>Error!</title><body>"); 
      out.println("<b><i>Class not found " + cnfe + "</i></b>"); 
      out.println("</body></html>"); 
     } catch (SQLException sqle) { 
      out.println("<html><head><title>Error!</title><body>"); 
      out.println("<b><i>Unable to process try after some time Sql error</i></b>"); 
      out.println("</body></html>"); 
     } catch (ParseException e) { 
      out.println("<html><head><title>Error!</title><body>"); 
      out.println("<b><i>Unable to process Parseint exc " + e + "</i></b>"); 
      out.println("</body></html>"); 
     } 

     out.flush(); 
     out.close(); 
    } 
} 

Mein Klassenpfad ist:

C: \Windows\ system32 > echo % classpath % 
    E: \app\ JamesPJ\ product\ 11.2.0\ dbhome_1\ oui\ jlib\ classes12.jar; 
E: \app\ JamesPJ\ product 11.2.0\ dbhome_1\ jlib\ orai18n.jar; 
E: \app\ JamesPJ\ product\ 11.2.0\ dbhome_1\ jdbc\ lib\ ojdc6_g.jar; 
E: \app\ JamesPJ\ product\ 11.2.0\ dbhome_1\ BIN; 
C: \Program Files\ Java\ jdk1.7.0_09\ bin; 
C: \Users\ JamesPJ\ Documents; 
E: \app\ JamesPJ\ product\ 11.2.0\ dbhome_1\ jdbc\ lib; 
E: \app\ JamesPJ\ product\ 11.2.0\ dbhome_1\ jlib; 
E: \app\ JamesPJ\ product\ 11.2.0\ dbhome_1\ jdbc\ lib\ ojdbc6.jar; 
E: \app\ JamesPJ\ product\ 11.2.0\ dbhome_1\ oc4j\ jdbc\ lib\ orai18n.jar; 
E: \app\ JamesPJ\ product\ 11.2.0\ dbhome_1\ oc4j\ jdbc\ lib\ ocrs12.jar; 
E: \app\ JamesPJ\ product\ 11.2.0\ dbhome_1\ owb\ wf\ lib\ ojdbc14.jar; 
C: \Program Files\ Apache Software Foundation\ Tomcat 7.0\ lib\ servlet - api.jar 

Wenn ich gebe die

java oracle.jdbc.driver.OracleDriver 

Befehl in Eingabeaufforderung wurde zeigt es folgende Zeilen

Error: Main method not found in class oracle.jdbc.driver.OracleDriver, please define the main method as: 
     public static void main(String[] args) 
+1

OracleDriver enthält keine Hauptmethode. Sie können kein Servlet ohne einen entsprechenden Container (wie Tomcat) starten ... das Aufrufen von 'java oracle.jdbc.driver.OracleDriver' macht keinen Sinn. – home

Antwort

19

Haben Sie classes12.jar in Ordner lib Ihrer Web-Anwendung und stellen Sie den Classpath in Eclipse kopiert.

Rechtsklick Projekt in Paket-Explorer Build-Pfad -> Add externen Archiven ...

Wählen Sie ojdbc6.jar Archiv

Presse OK

Oder

durch diese gehen link und lesen und tun Sie vorsichtig.

Die Bibliothek sollte jetzt in den "referenzierten Bibliotheken" unter dem Paket-Explorer referenziert werden. Versuchen Sie nun, das Programm erneut auszuführen.

+0

ja ich kopierte classes12.jar ad ojdbc14.jar –

+0

welche oracle-version du verwendest entweder 8i oder 10g –

+0

ich benutze oracle 11g R2 –

14

Gehen Sie durch C:\apache-tomcat-7.0.47\lib Pfad (dieser Pfad kann sich unterscheiden, je nachdem, wo Sie den Tomcat-Server installiert haben) dann nach ojdbc14.jar, wenn es nicht enthält.

dann den Server in Eclipse neu starten dann die App

+0

+1 das löste das Problem für mich. –

+0

@Ravikumar D G: +1 löste auch das Problem für mich. –

+0

Infact das ist brilliant..my Problem ist gelöst –

0

Ich war immer gleiche irgendwie Fehler auf dem Server laufen, aber nach dem ojdbc14.jar in lib-Ordner zu kopieren, nicht mehr Ausnahme. (Kopie ojdbc14.jar von irgendwo und Paste . es in lib-Ordner innerhalb WebContent)

0

hatte ich das gleiche Problem, aber war in der Lage, es zu beheben, indem sie folgendermaßen vorgehen:

Rechtsklick auf das Projekt -> Eigenschaften, dann die JAR hinzufügen (odjbc6 oder 14) Datei in der Deployment-Assembly.

+0

Ihre Antwort bezieht sich auf eine bestimmte IDE und Setup, aber ich denke, die OPs ist anders. Sie scheinen auch dieses Glas zu ihrem Klassenpfad hinzugefügt zu haben. –

0

ich gleiche irgendwie Fehler bekommen, aber nach Kopieren der ojdbc14.jar in lib Ordner, nicht mehr Ausnahme. (Kopie ojdbc14.jar von irgendwo und es in lib Ordner innerhalb WebContent einfügen.)

5

Team! Für SQL-Abfrage von Ihrem Servlet ausführen Sie JDBC jar Bibliothek

WEB-INF/lib 

Danach in Ordner hinzufügen, sollten Sie Treiber nennen könnte, Beispiel:

Class.forName("oracle.jdbc.OracleDriver"); 

Jetzt können Y Verbindung zum DB-Server verwenden

==> 73!

2

versuchen über den Server lib hinzufügen ojdbc6.jar "C: \ Apache-tomcat-7.0.47 \ lib",

dann den Server in Eclipse neu starten.

Verwandte Themen