Avatar billede madseksperten Nybegynder
31. januar 2014 - 16:05 Der er 16 kommentarer og
1 løsning

connection tip mysql error

Hejsa

Jeg er igang med at lave en connection fra min JSP side til min MYSQL database. Min database hedder "shop". Her er min kode:

<%@page import="java.sql.*" %>
<%! public static Connection connect() {
        try {
        Class.forName("com.mysql.jdbc.Driver").newInstance();
            return DriverManager.getConnection("jdbc:mysql://localhost/shop", "root", " ");
        } catch(Exception e) {
            throw new Error(e);
        }   
    }
    public static boolean close(Connection c) {
        try {
            c.close();
            return true;
        } catch(Exception e) {
            return false;
        }
    }%>
   
<%@ page language="java" contentType="text/html; charset=US-ASCII"
    pageEncoding="US-ASCII"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Insert title here</title>
</head>
<body>
    <%
        Connection c = connect();
        out.print(c);
        close(c);
    %>

</body>
</html>

Når jeg kører dette, får jeg følgende fejl på exception:

type Exception report

message An exception occurred processing JSP page /index.jsp at line 7

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 7

4:         Class.forName("com.mysql.jdbc.Driver").newInstance();
5:             return DriverManager.getConnection("jdbc:mysql://localhost/shop", "root", " ");
6:         } catch(Exception e) {
7:             throw new Error(e);
8:         }   
9:     }
10:     public static boolean close(Connection c) {


Stacktrace:
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
root cause

javax.servlet.ServletException: java.lang.Error: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:912)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:841)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:107)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
root cause

java.lang.Error: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    org.apache.jsp.index_jsp.connect(index_jsp.java:24)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:91)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
root cause

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:126)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63)
    java.lang.Class.forName0(Native Method)
    java.lang.Class.forName(Class.java:171)
    org.apache.jsp.index_jsp.connect(index_jsp.java:21)
    org.apache.jsp.index_jsp._jspService(index_jsp.java:91)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.42 logs.

Min SQL server kører på computeren, og når jeg tester forbindelsen i workbench, så er den ok. Jeg har ikke noget password på min database. Jeg har prøvet med:

return DriverManager.getConnection("jdbc:mysql://localhost/shop", "root", " ");
return DriverManager.getConnection("jdbc:mysql://127.0.0.1/shop", "root", " ");
return DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/shop", "root", " ");

men ikke noget af det virker. Er der nogle som har en ide til hvad det kan være?

mvh Mads
Avatar billede arne_v Ekspert
31. januar 2014 - 16:12 #1
Den vigtige del af fejl meddelelsen er:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

Den kan ikke finde MySQL driveren.
Avatar billede arne_v Ekspert
31. januar 2014 - 16:13 #2
Du skal putte MySQL jar filen i WEB-INF/lib directory!
Avatar billede madseksperten Nybegynder
31. januar 2014 - 16:25 #3
ok tak. Hvordan er det lige jeg gør det spørger jeg så dumt :-/
Avatar billede madseksperten Nybegynder
31. januar 2014 - 16:29 #4
fandt dette link, men kan ikke finde build path
Avatar billede madseksperten Nybegynder
31. januar 2014 - 16:30 #5
Avatar billede arne_v Ekspert
31. januar 2014 - 16:32 #6
Der er ikke under build men runtime du mangler den driver.
Avatar billede madseksperten Nybegynder
31. januar 2014 - 16:33 #7
Jeg har den herinde nu, men det er ikke godt nok vel?

http://postimg.org/image/i9ijpw4ul/

Hvordan får jeg den den i lib?
Avatar billede arne_v Ekspert
31. januar 2014 - 16:34 #8
Hvis du har en separat Tomcat koerende saa skal du have foelgende struktur:

TOMCAT_ROOT\webapps\navnpaadinwebapp\noget.jsp
TOMCAT_ROOT\webapps\navnpaadinwebapp\WEB-INF\lib\mysqldriverversionditogdat.jar
Avatar billede arne_v Ekspert
31. januar 2014 - 16:34 #9
Hvis du koerer inde fra Eclipse, saa er jeg lidt tvivl om hvad du skal.
Avatar billede madseksperten Nybegynder
31. januar 2014 - 16:44 #10
Min server kører inde fra eclipse tror jeg. Altså jeg har tilføjet min tomcat inde i eclipse
Avatar billede madseksperten Nybegynder
31. januar 2014 - 16:51 #11
Okay jeg har i det mindste fået pinget min database nu, så den har fundet den
Avatar billede madseksperten Nybegynder
31. januar 2014 - 16:59 #12
Har prøvet at kopiere mysql jar ind i tomcat uden resultat:

http://postimg.org/image/3y3tl4idb/
Avatar billede madseksperten Nybegynder
31. januar 2014 - 17:06 #13
Okay nu har jeg fået add min connection til mit projekt i java runtime. Nu får jeg en anden fejl:

http://postimg.org/image/60sgvrpqr/

Jeg har ikke brugt noget password?
Avatar billede madseksperten Nybegynder
31. januar 2014 - 17:07 #14
YES så kører det. Fejlen var at der var " " i password og ikke "".

Smider du et svar Arne?

Mange tak for hjælpen
Avatar billede arne_v Ekspert
01. februar 2014 - 01:52 #15
svar
Avatar billede arne_v Ekspert
01. februar 2014 - 01:56 #16
Java web apps er et meget stort emne.

Jeg har skrevet lidt artikler her paa eksperten.dk som maaske kan inspirere dig lidt:

http://www.eksperten.dk/guide/28

http://www.eksperten.dk/guide/50

http://www.eksperten.dk/guide/675

http://www.eksperten.dk/guide/743

http://www.eksperten.dk/guide/1590
Avatar billede madseksperten Nybegynder
01. februar 2014 - 15:49 #17
super mange tak for det :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester