J'ai écrit un programme Java Servlet, mais lorsque je l'exécutais, il affichait l'exception
Java.lang.ClassNotFoundException: Oracle.jdbc.driver.OracleDriver
Mon code est
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();
}
}
Mon parcours est:
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
Quand je donne le
Java Oracle.jdbc.driver.OracleDriver
commande en invite de commande, il montrait les lignes suivantes
Error: Main method not found in class Oracle.jdbc.driver.OracleDriver, please define the main method as:
public static void main(String[] args)
Avez-vous copié classes12.jar dans le dossier lib de votre application Web et défini le chemin d'accès aux classes dans Eclipse.
Cliquez avec le bouton droit sur le projet dans le chemin de compilation de l'explorateur de packages -> Ajouter des archives externes ...
Sélectionnez votre archive ojdbc6.jar
Appuyer sur OK
Ou
Passez par ceci lien et lisez et faites attentivement.
La bibliothèque doit maintenant être référencée dans les "Bibliothèques référencées" sous l'explorateur de packages. Maintenant, essayez de réexécuter votre programme.
Traverser C:\Apache-Tomcat-7.0.47\lib
chemin (ce chemin peut être différent en fonction de l’emplacement où vous avez installé le serveur Tomcat), puis passé ojdbc14.jar
si ce n'est pas contenir.
Puis redémarrez le serveur dans Eclipse puis exécutez votre application sur le serveur.
équipe! Pour exécuter une requête SQL à partir de votre servlet, vous devez ajouter la bibliothèque JD JDBC dans le dossier.
WEB-INF/lib
Après cela, vous pouvez appeler le pilote, exemple:
Class.forName("Oracle.jdbc.OracleDriver");
Maintenant, vous pouvez utiliser la connexion au serveur de base de données.
==> 73!
essayez d'ajouter ojdbc6.jar via la bibliothèque du serveur "C:\Apache-Tomcat-7.0.47\lib",
Puis redémarrez le serveur dans Eclipse.
J'avais la même erreur, mais après avoir copié le fichier ojdbc14.jar dans le dossier lib, plus d'exception. (Copiez ojdbc14.jar quelque part et collez-le dans le dossier lib du WebContent.)
J'ai eu le même problème, mais j'ai pu le résoudre en procédant comme suit:
Cliquez avec le bouton droit sur le projet -> Propriétés, puis ajoutez le fichier JAR (odjbc6 ou 14) dans l’Assembly de déploiement.
J'avais la même erreur, mais après avoir copié le fichier ojdbc14.jar dans le dossier lib, plus d'exception. (Copiez ojdbc14.jar quelque part et collez-le dans le dossier lib du WebContent.)