我在项目的构建路径中添加了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)
答案 0 :(得分:2)
您需要在运行时使用JDBC驱动程序,而不仅仅是在构建时。不应该在你的eclipse项目的构建路径中添加jar。它应该简单地放在WebContent/WEB-INF/lib
内,它会自动将它添加到构建路径和必须部署为webapp库的jar集。