Hallo,
Ich habe eine kleine Web-Anwendung mit Struts entwickelt und sie funktioniert auch einwandfrei. Dann habe ich versucht eine Datenbankanbindung hinzuzufügen bzw. arbeite ich jetzt daran schon gute 1,5 Tage und bekomme das mit der Datenbank einfach nicht hin.
Ich habe mir den MySQL server 5.0 runtergeladen und installiert und weiters einen jdbc treiber mysq-connector-java-3.1.11.zip runtergeladen und ins MySQL Server 5.0 Verzeichnis entpackt. Weiters habe ich unter Systemsteuerung - Systemvariablen bei der Variable CLASSPATH den gesamten Pfad -> C:\Programme\MySQL\MySQL Server 5.0\mysql-connector-java-3.1.11\mysql-connector-java-3.1.11-bin.jar angegeben.
Dann habe ich den SQL Server 5.0 mit mysqld --console von der command line gestartet.
Weiters habe ich bei meinem Struts-Web-Projekt in Eclipse unter Project-Properties-Java Build Path - Libraries - Add External JARs ebenalls die mysql-connector-java.3.1.11-bin.jar hinzugefügt.
Um das dann zu testen habe ich zu der bereits vorhandenen test-Datenbank von mysql eine tabelle hinzugefügt und wollte die dann in der Action-Klasse verwenden und zwar mit folgenden Statements - ich habe die gesamte execute Methode in der OwnerAction Klasse angegeben:
Aber immer wenn ich dann die WebAnwendung ausführe und es dann zu dem Aufruf der Action kommt wird folgende Fehlermeldung geworfen:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Servlet execution threw an exception
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
root cause
java.lang.NoClassDefFoundError: org/gjt/mm/mysql/Driver
com.asprise.struts.action.OwnerAction.execute(OwnerAction.java:72)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5 logs.
Das heißt ja irgendwas, das der Driver nicht gefunden wurde, aber ich habe ihn ja im Classpath definiert und auch zu meinem Web-Project hinzugefügt.
Hat irgendjemand noch eine Idee, was ich hier vergessen oder falsch gemacht habe??


danke im voraus
lg
Ich habe eine kleine Web-Anwendung mit Struts entwickelt und sie funktioniert auch einwandfrei. Dann habe ich versucht eine Datenbankanbindung hinzuzufügen bzw. arbeite ich jetzt daran schon gute 1,5 Tage und bekomme das mit der Datenbank einfach nicht hin.
Ich habe mir den MySQL server 5.0 runtergeladen und installiert und weiters einen jdbc treiber mysq-connector-java-3.1.11.zip runtergeladen und ins MySQL Server 5.0 Verzeichnis entpackt. Weiters habe ich unter Systemsteuerung - Systemvariablen bei der Variable CLASSPATH den gesamten Pfad -> C:\Programme\MySQL\MySQL Server 5.0\mysql-connector-java-3.1.11\mysql-connector-java-3.1.11-bin.jar angegeben.
Dann habe ich den SQL Server 5.0 mit mysqld --console von der command line gestartet.
Weiters habe ich bei meinem Struts-Web-Projekt in Eclipse unter Project-Properties-Java Build Path - Libraries - Add External JARs ebenalls die mysql-connector-java.3.1.11-bin.jar hinzugefügt.
Um das dann zu testen habe ich zu der bereits vorhandenen test-Datenbank von mysql eine tabelle hinzugefügt und wollte die dann in der Action-Klasse verwenden und zwar mit folgenden Statements - ich habe die gesamte execute Methode in der OwnerAction Klasse angegeben:
Code:
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
OwnerForm ownerForm = (OwnerForm) form;
String greet = ownerForm.getGreet();
String name = ownerForm.getName();
request.setAttribute("name", name);
request.setAttribute("greet", greet);
String address = ownerForm.getAddress();
String email = ownerForm.getEmail();
int tel = ownerForm.getTel();
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
DriverManager.registerDriver(new org.gjt.mm.mysql.Driver());
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","sa");
try {
//conn = dataSource.getConnection();
stmt = conn.createStatement();
int id = 0;
rs = stmt.executeQuery("select max(id) as counter from owner");
while(rs.next()){
id = rs.getInt("counter");
}
id += 1;
stmt.executeUpdate("insert into owner values("+id+", '"+greet+"', '"+name+"', '"+email+"', '"+address+"', "+tel+")");
rs.close();
stmt.close();
conn.close();
}
catch(SQLException e){
throw new SQLException("database error");
}
// Forward control to the specified success target
return (mapping.findForward("success"));
}
Aber immer wenn ich dann die WebAnwendung ausführe und es dann zu dem Aufruf der Action kommt wird folgende Fehlermeldung geworfen:
HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Servlet execution threw an exception
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
root cause
java.lang.NoClassDefFoundError: org/gjt/mm/mysql/Driver
com.asprise.struts.action.OwnerAction.execute(OwnerAction.java:72)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5 logs.
Das heißt ja irgendwas, das der Driver nicht gefunden wurde, aber ich habe ihn ja im Classpath definiert und auch zu meinem Web-Project hinzugefügt.
Hat irgendjemand noch eine Idee, was ich hier vergessen oder falsch gemacht habe??
danke im voraus
lg