Java Servletプログラムを作成しましたが、実行すると例外が表示されていました
Java.lang.ClassNotFoundException: Oracle.jdbc.driver.OracleDriver
私のコードは
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();
}
}
私のクラスパスは次のとおりです。
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
私が与えるとき
Java Oracle.jdbc.driver.OracleDriver
コマンドプロンプトのコマンド、次の行を表示していました
Error: Main method not found in class Oracle.jdbc.driver.OracleDriver, please define the main method as:
public static void main(String[] args)
Webアプリケーションのlibフォルダーにclasses12.jarをコピーし、Eclipseでクラスパスを設定しました。
パッケージエクスプローラーでプロジェクトを右クリックし、ビルドパス->外部アーカイブを追加...
Ojdbc6.jarアーカイブを選択します
OKを押す
または
link を読み、注意深く読んでください。
ライブラリは、Package Explorerの下の「Referenced Librairies」で参照されるはずです。次に、プログラムを再度実行してください。
C:\Apache-Tomcat-7.0.47\lib
パス(このパスは、Tomcatサーバーをインストールした場所によって異なる場合があります)その後ojdbc14.jar
含まれていない場合。
次に、Eclipseでサーバーを再起動し、サーバーでアプリを実行します
チーム!サーブレットからSQLクエリを実行するには、フォルダにJDBC jarライブラリを追加する必要があります
WEB-INF/lib
この後、ドライバーを呼び出すことができます、例:
Class.forName("Oracle.jdbc.OracleDriver");
これで、YはDBサーバーへの接続を使用できます
==> 73!
サーバーライブラリ「C:\ Apache-Tomcat-7.0.47\lib」を介してojdbc6.jarを追加してみてください。
次に、Eclipseでサーバーを再起動します。
同じ種類のエラーが発生していましたが、ojdbc14.jarをlibフォルダーにコピーした後、例外はありません(どこかからojdbc14.jarをコピーして、WebContent内のlibフォルダーに貼り付けます)。
私は同じ問題を抱えていましたが、次のことを行うことでそれを修正することができました:
プロジェクトを右クリックし、[プロパティ]をクリックして、展開アセンブリにJAR(odjbc6または14)ファイルを追加します。
同じ種類のエラーが発生していましたが、ojdbc14.jarをlibフォルダーにコピーした後、例外はありません(どこかからojdbc14.jarをコピーして、WebContent内のlibフォルダーに貼り付けます)。