#1
  1. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Nov 2004
    Location
    Ontario, Canada
    Posts
    138
    Rep Power
    31

    Connect using JSP to mysql database.


    Hey everyone.
    I am slowly trying to get away from ASP and try using JSP. Although right now I feel like a novice swimmer who just realized he can't touch the bottom of the pool and doesn't yet know how to swim...
    Anyway, my problem is this...
    This code
    Code:
    Class.forName("com.mysql.jdbc.Driver").newInstance();
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/DBNAME","USER_NAME","PASSWORD");
    is resulting in the following error..

    Apache Tomcat/4.0.6 - HTTP Status 500 - Internal Server Error

    --------------------------------------------------------------------------------

    type Exception report

    message Internal Server Error

    description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.

    exception

    javax.servlet.ServletException: org/apache/jasper/runtime/JspException
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:481)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:98)
    at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:176)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:172)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
    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.core.StandardContextValve.invoke(StandardContextValve.java:190)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at 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.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:458)
    at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:551)
    at java.lang.Thread.run(Thread.java:534)


    root cause

    java.lang.NoClassDefFoundError: org/apache/jasper/runtime/JspException
    at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:463)
    at org.apache.jsp.testdb$jsp._jspService(testdb$jsp.java:88)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:98)
    at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:176)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:172)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
    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.core.StandardContextValve.invoke(StandardContextValve.java:190)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
    at 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.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:458)
    at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:551)
    at java.lang.Thread.run(Thread.java:534)
    So I assume the problem is this: java.lang.NoClassDefFoundError: org/apache/jasper/runtime/JspException, but I am not sure how to correct it.

    Pls help me touch bottom again!
    Thanks.
  2. #2
  3. No Profile Picture
    Contributing User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Jun 2003
    Posts
    179
    Rep Power
    28
    You need to find out what line in the JSP page threw the exception. JSP pages are translated by Tomcat into Java source files, which are stored in the server's /work directory. The path will be something like /work/localhost/.../testdb$jsp.java (starting at the Tomcat home directory). That code gets compiled into a Java class when you open your JSP page in the browser for the first time. So, you need to find out what happens at line 88 in that Java source file and what line it corresponds to in your actual page (testdb.jsp).

    I am guessing the error is caused by the JVM's not being able to load the MySQL JDBC driver, hence the ClassNotFoundException. If that is the case, you need to put the jar file containing the driver into the appropriate Tomcat directory. Either into /WEB-INF/lib for your application only or into one of the top-level directories (I think it's /common) if you want other web apps in the server to use it.

    Second, you should not really be putting this kind of code into JSP pages. Database operations should happen in the objects that are working behind the scene, not the JSP page. The JSP page should mostly be used for presentation logic. It's really a huge topic, but if you want to get some idea, read up on the MVC design pattern for web programming or on the various Java web frameworks like Struts, Spring, etc.

    Hope this helps.

    Comments on this post

    • gertcuppens agrees

IMN logo majestic logo threadwatch logo seochat tools logo