哎小白 2019-07-26 09:07 采纳率: 0%
浏览 585

求助大神,servlet无法创建dao对象的实例

servlet无法创建dao对象的实例


dao对象代码:

package com.company.dao;

import com.company.domain.User;
import com.company.util.JDBCUtils;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;



public class UserDao {
    private JdbcTemplate jdbcTemplate = new JdbcTemplate(JDBCUtils.getDataSource());

    public  User login(User loginUser) {
        System.out.println("UserDao");
        try {
            String sql = "select * from user where username = ? and password = ?";
            User user = jdbcTemplate.queryForObject(sql,
                    new BeanPropertyRowMapper<>(User.class),
                    loginUser.getUsername(),
                    loginUser.getPassword());
            System.out.println("UserDao"+user);

            return user;
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("error");
            return null;
        }
    }
}

login登录逻辑代码:


package com.company.web.servlet;


import com.company.dao.UserDao;
import com.company.domain.User;


import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet({"/Register/loginRegister", "/loginRegister"})
public class LoginServlet extends HttpServlet {


    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");

        String username = req.getParameter("username");
        String password = req.getParameter("password");


        User user = new User();
        user.setPassword(password);
        user.setUsername(username);
        System.out.println(user); //这一步可以打印user对象


            UserDao userDao = new UserDao();  //调试时不能得到 userDao对象
        User loginUser = userDao.login(user); //无法调用login方法
        System.out.println(loginUser);


        req.setAttribute("username", username);

        if (loginUser == null) {
            req.getRequestDispatcher("/failedServlet").forward(req, resp);
        } else {
            req.getRequestDispatcher("/successServlet").forward(req, resp);
        }
    }

    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doGet(req, resp);
    }
}
用jnit测试dao对象可以创建,login方法调用正常

@Test
    public void testDao(){
        UserDao userDao = new UserDao();
        User user = new User(null, "admin", "admin");
        User xxx = userDao.login(user);
        System.out.println(xxx);
    }

网页上异常信息:


Exception:

javax.servlet.ServletException: Servlet execution threw an exception
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

Root Cause:

java.lang.NoClassDefFoundError: org/springframework/jdbc/core/RowMapper
    com.company.web.servlet.LoginServlet.doGet(LoginServlet.java:50)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

Root Cause:

java.lang.ClassNotFoundException: org.springframework.jdbc.core.RowMapper
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1308)
    org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1136)
    com.company.web.servlet.LoginServlet.doGet(LoginServlet.java:50)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
  • 写回答

7条回答 默认 最新

  • 哎小白 2019-07-26 16:10
    关注

    我把JDBC的jar包加入到 WED_INF 文件夹下的lib目录,应该加入到 WED-INF 目录下,注意: 是 中间短横线 不是 下横线 [大哭]

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog