除了为JDBC添加jar之外,“java.lang.classnotfoundexception:com.mysql.jdbc.Driver”

时间:2014-03-10 08:04:11

标签: java jsp exception jdbc

我在项目的构建路径中添加了jdbc的jar文件,但它仍然给了我这个异常javax.servlet.ServletException: java.lang.ClassNotFoundException:com.mysql.jdbc.Driver“

我在

中添加了jar文件
  

项目 - > Proeperties - > Java Bild Path - > Libraries - > Add external Library。

<html>
<head><title>Member Details</title></head>
<body>
<h2>Members Details...!</h2>
<table>
<%@ page import="java.util.*" %>
<%@ page import="java.sql.SQLException" %>
<%@ page import="javax.sql.*;" %>

<% 

java.sql.Connection con;
java.sql.Statement s;
java.sql.ResultSet rs;
java.sql.PreparedStatement pst;

con=null;
s=null;
pst=null;
rs=null;

// Remember to change the next line with your own environment
String url= "jdbc:mysql://localhost:3306/employees";
String id= "root";
String pass = "admin";
try{

    Class.forName("com.mysql.jdbc.Driver");
    con = java.sql.DriverManager.getConnection(url, id, pass);

    }catch(SQLException e) {
        System.out.println("Connection Failed! Check output console");
        e.printStackTrace();
        return;
    }

String sql = "SELECT id, age, first, last FROM employee";
try{
    s = con.createStatement();
    rs = s.executeQuery(sql);
    %>

    <tr>
    <th>Employee ID</th>
    <th>Employee Age</th>
    <th>First Name</th>
    <th>Last Name</th>
    </tr>
    <%
    while( rs.next() ){
    %><tr>
    <td><%= rs.getString("id") %></td>
    <td><%= rs.getString("age") %></td>
    <td><%= rs.getString("first") %></td>
    <td><%= rs.getString("last") %></td>
    </tr>
    </table>
        <%
        }
        %>
    <%
    }catch(Exception e){
        e.printStackTrace();
        }

finally{
        if(rs!=null)
            rs.close();
        if(s!=null)
            s.close();
        if(con!=null)
            con.close();
            }
%>
</body>
</html>

异常StackTrace:

org.apache.jasper.JasperException: javax.servlet.ServletException:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver   
org.apache.jasper.servlet.JspServletWrapper.handleJspException   
(JspServletWrapper.java:549)
 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)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:88)

根本原因:

 javax.servlet.ServletException: 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.members_jsp._jspService(members_jsp.java:164)
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)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:88)

根本原因

    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(Unknown Source)
org.apache.jsp.members_jsp._jspService(members_jsp.java:94)
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)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:88)

1 个答案:

答案 0 :(得分:2)

您需要在运行时使用JDBC驱动程序,而不仅仅是在构建时。不应该在你的eclipse项目的构建路径中添加jar。它应该简单地放在WebContent/WEB-INF/lib内,它会自动将它添加到构建路径和必须部署为webapp库的jar集。