Hi erstmal!
Ich habe ein Problem beim Datenbankzugriff mit einem Servlet und wollte fragen ob ihr mir hier vielleicht weiterhelfen könntet....
Also grundsätzlich möchte ich mit einem Servlet auf eine MySQL Datenbank zugreifen und von dieser Werte abfragen...
Mein Problem ist, dass das Servlet die Treiberklasse nicht findet, dh. mir eine ClassNotFoundException wirft....
hier einmal der code
Dann die Klasse für den DatenbankzugriffCode://Das ist das Servlet import java.io.*; import java.sql.*; import javax.servlet.ServletException; import javax.servlet.http.*; public class StoreProc extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { //Initialisierung der Variablen boolean html = false; boolean text = false; boolean xls = false; boolean self = false; ResultSet rs = null; //Ermitteln der uebergebenen Parameter int start = Integer.parseInt(req.getParameterValues("Start")[0]); int stop = Integer.parseInt(req.getParameterValues("Ende")[0]); html = (req.getParameterValues("htmlformat") != null); text = (req.getParameterValues("textformat") != null); xls = (req.getParameterValues("xlsformat") != null); self = (req.getParameterValues("selfformat") != null); try { rs = DataBase.RequestData(start, stop); //<-- Aufruf der Problemfunktion } catch (SQLException es) { System.out.println(es.toString()); } PrintWriter out = res.getWriter(); try { if (xls) printxls(res, out, rs); else if (text) printtxt(res, out, rs); else if (html) printhtml(res, out, rs); } catch (SQLException e1) { System.out.println(e1.toString()); } } }
Mein Problem besteht jetzt darin, dass wenn ich die Funktion RequestData aus dem Servlet aufrufe wirft mir das Programm die Exception "java.lang.ClassNotFoundException: com.mysql.jdbc.Driver" (Er findet den mysqldriver nicht)Code:import java.sql.*; import java.util.Date; public class DataBase { private static Connection c; public static ResultSet RequestData(long von, long bis) throws SQLException { try { Class.forName("com.mysql.jdbc.Driver").newInstance(); //!!!!!!!! } catch (Exception e) { System.out.println(e.toString()); } try { c = DriverManager.getConnection("jdbc:mysql:///ftku", "root", "secret"); } catch (SQLException e1) { System.out.println(e1.toString()); } StringBuffer sb = new StringBuffer("SELECT * FROM Messwerte WHERE "); Date d_von = new Date(System.currentTimeMillis() - von * 60000); Date d_bis = new Date(System.currentTimeMillis() - bis * 60000); sb.append("ZEIT < " + d_bis.getTime() + " AND ZEIT > " + d_von.getTime() + ";"); Statement s = c.createStatement(); return s.executeQuery(sb.toString()); } }
Was mich jedoch stutzig macht ist, dass wenn ich die selbe Funktion aus der folgenden Klasse heraus aufrufe läuft sie einwandfrei
Mein einziger Verdacht wäre, dass ich bei meinem Webserver (Tomcat) eine Konfiguration vergessen (falsch gemacht) hätte....Code://Testklasse import java.sql.*; public class Host { public static void main(String args[]){ ResultSet rs = null; try { rs = DataBase.RequestData(10, 0); } catch (SQLException e1) { System.out.println(" " + e1.toString()); } try { while(rs.next()) { System.out.print(rs.getString(1) + "\t"); System.out.println(rs.getString(2)); } } catch (SQLException e) { System.out.println(" " + e.toString()); } System.out.println("Succeful"); } }
ps: Ich habe Eclipse 3 + Sysdeo Tomcat Plug-in V221 benutzt. Als Datenbanktreiber mysql-connector-java-3.0.9 und als Datenbank mysql-4.0.15...
Danke schonmal, dass ihr euch die Mühe gemacht habt soweit zu lesen....
EDIT:
hier die Exceptions
Code:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver java.sql.SQLException: No suitable driver



Zitieren