I am using MySQL for the first time. First I gave global permissions to all users. Then I wrote a simple JDBC application and it worked fine. Then I wrote a simple servlet to fetch and display data from the MySql DB. That is when I had the problem. My class path points to the .jar files having the mm.mysql.XXX driver files. Is there any variable I have to set in Tomcat inorder to make this work ?? I have copied the stack trace, and I will also copy the code. Please help.......!
******************** SOURCE CODE *************
import java.io.*;
....
public class MysqlExample extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException { try {
Class.forName("org.gjt.mm.mysql.Driver"
;
String url = "jdbc:mysql://localhost/test";
Connection con = DriverManager.getConnection(url, "dummy", "dummy"
;
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * from Author"
;
response.setContentType("text/html"
;
PrintWriter out = response.getWriter();
out.println("<html>"
;
.....
...
while(rs.next()) {
int author_id = rs.getInt(1);
String first_name = rs.getString(2);
String last_name = rs.getString(3);
out.println("<tr><td>" + author_id + "</td><td>" + first_name + "</td><td>" + last_name + "</td></tr>"
;
}
out.println("</table><P><hr>"
;
out.println("</body>"
;
out.println("</html>"
;
}
catch( Exception e ) {
....
}}}
*************** STACK TRACE **************************
org.gjt.mm.mysql.Driver
java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1394) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1243) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:130) at MysqlExample.doGet(MysqlExample.java:15) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
....
....
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107) at java.lang.Thread.run(Thread.java:536)
End of Stack Trace
******************** SOURCE CODE *************
import java.io.*;
....
public class MysqlExample extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException { try {
Class.forName("org.gjt.mm.mysql.Driver"
String url = "jdbc:mysql://localhost/test";
Connection con = DriverManager.getConnection(url, "dummy", "dummy"
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * from Author"
response.setContentType("text/html"
PrintWriter out = response.getWriter();
out.println("<html>"
.....
...
while(rs.next()) {
int author_id = rs.getInt(1);
String first_name = rs.getString(2);
String last_name = rs.getString(3);
out.println("<tr><td>" + author_id + "</td><td>" + first_name + "</td><td>" + last_name + "</td></tr>"
}
out.println("</table><P><hr>"
out.println("</body>"
out.println("</html>"
}
catch( Exception e ) {
....
}}}
*************** STACK TRACE **************************
org.gjt.mm.mysql.Driver
java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1394) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1243) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:130) at MysqlExample.doGet(MysqlExample.java:15) at javax.servlet.http.HttpServlet.service(HttpServlet.java:740) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
....
....
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1012) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1107) at java.lang.Thread.run(Thread.java:536)
End of Stack Trace