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



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

我已经在 中添加了jar文件

Project -> properties ->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>

Exception 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)

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

最新更新