cyqhaha 2016-09-10 16:17 采纳率: 100%
浏览 2280
已采纳

Servlet访问数据库报错500

这是网页提示的错误
HTTP Status 500 - 查询失败


type Exception report

message 查询失败

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

exception

java.lang.RuntimeException: 查询失败
Dao.EmpDao.finAll(EmpDao.java:32)
web.SqlServlet.service(SqlServlet.java:23)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

root cause

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'oracle.jdbc.driver.OracleDriver'
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1429)
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)
org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
util.DBUtil.getConnection(DBUtil.java:36)
Dao.EmpDao.finAll(EmpDao.java:16)
web.SqlServlet.service(SqlServlet.java:23)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

root cause

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1856)
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1705)
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1420)
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)
org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
util.DBUtil.getConnection(DBUtil.java:36)
Dao.EmpDao.finAll(EmpDao.java:16)
web.SqlServlet.service(SqlServlet.java:23)
javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.67 logs.

这是我的代码,我用测试代码访问数据库的时候,都没有问题,一旦用Servlet访问就出现500问题
package web;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import Dao.EmpDao;
import entity.Emp;

public class SqlServlet extends HttpServlet {

@Override
protected void service(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
    req.setCharacterEncoding("utf-8");
    res.setContentType("text/html;charset=utf-8");
    EmpDao dao = new EmpDao();
    List<Emp> list = dao.finAll();
    PrintWriter out = res.getWriter();
    out.println("<table border='1px' cellspacing='0' width='40%'>");
    out.println("  <tr>");
    out.println("   <th>编号</th>");
    out.println("   <th>姓名</th>");
    out.println("   <th>职位</th>");
    out.println("   <th>月薪</th>");
    out.println("  </tr>");
    for(Emp emp:list){
        out.println("<tr>");
        out.println("   <td>"+emp.getEmpno()+"</td>");
        out.println("   <td>"+emp.getEname()+"</td>");
        out.println("   <td>"+emp.getJob()+"</td>");
        out.println("   <td>"+emp.getSal()+"</td>");
        out.println("</tr>");
    }
    out.println("</table>");
    out.close();
}

}

下面是dao包的代码package Dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

import entity.Emp;
import util.DBUtil;

public class EmpDao {
public List finAll(){
Connection con = null;
try {
con=DBUtil.getConnection();
String sql = "select * from student";
PreparedStatement ps = con.prepareStatement(sql);
List list = new ArrayList();
ResultSet rs = ps.executeQuery();
while(rs.next()){
Emp emp = new Emp();
emp.setEmpno(rs.getInt("empno"));
emp.setEname(rs.getString("ename"));
emp.setJob(rs.getString("job"));
emp.setSal(rs.getDouble("sal"));
list.add(emp);
}
return list;
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("查询失败",e);
}finally{
DBUtil.close(con);

    }
}

}

请各位大神帮帮忙 谢谢

  • 写回答

7条回答 默认 最新

  • codeRandom 2016-09-11 08:39
    关注

    500问题是响应问题,说明响应出错,org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot load JDBC driver class 'oracle.jdbc.driver.OracleDriver' 和 java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 很明显的说明了你服务器中没有添加oracle6.jar类似的驱动包,添加进去就可以了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 spring后端vue前端
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题