weixin_43457559
哦糟了
采纳率100%
2020-12-03 13:47

报错:HTTP Status 500 – Internal Server Error

10

用的druid连接池,5.7.31的mysql,8.5.60的tomcat,1.8的Jdk.数据库部分User,UserDao和JDBCUtil写完测试了,功能可以。Servlet啥功能也没有的时候是可以访问的,但是一旦用到UserDao的功能就报错。查了很多事jar包目录的问题,我的jar包就在WEB-INF目录下实在找不出原因了。多谢有缘人。

报错页面:

出错部分:

UserDao ud = new UserDao();
User user = ud.Login(loginuser);

全部代码:

package com.xupt.domain;

public class User {
    private int id;
    private String username;
    private String password;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}


import org.springframework.jdbc.core.JdbcTemplate;

public class UserDao {
    private JdbcTemplate template = new JdbcTemplate(JDBCUtil.getDataSource());

    public User Login(User loginuser){
        String sql = "select * from useraccount where username = 'liu' and password = '123456'";

        /*User user = template.queryForObject(sql,
                new BeanPropertyRowMapper<User>(User.class),
                loginuser.getUsername(),loginuser.getPassword());*/
        User user = template.queryForObject(sql,new BeanPropertyRowMapper<User>(User.class));

        return user;
    }
}


package com.xupt.Util;

import com.alibaba.druid.pool.DruidDataSourceFactory;
import com.sun.corba.se.spi.orbutil.fsm.Input;

import javax.sql.DataSource;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

public class JDBCUtil {
    private static DataSource ds;

    static {
        try {
            Properties pro = new Properties();

            InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("druid.properties");

            pro.load(is);

            ds = DruidDataSourceFactory.createDataSource(pro);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static DataSource getDataSource(){
        return ds;
    }

    public static Connection getConnection() throws SQLException {
        return ds.getConnection();
    }
}


package com.xupt.servlet;

import com.xupt.dao.UserDao;
import com.xupt.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("/ServletLogin")
public class ServletLogin extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("hello");
        String username = "liu";
        String password = "123456";

        User loginuser = new User();
        loginuser.setUsername("username");
        loginuser.setPassword("password");

        UserDao ud = new UserDao();
        User user = ud.Login(loginuser);
        System.out.println(user);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request,response);
    }
}

  • 点赞
  • 收藏
  • 复制链接分享

22条回答

  • benpaodexin_l benpaodexin_l 4月前

    你jar包截图发出来看看

    点赞 评论 复制链接分享
  • qq_21259459 张张小 4月前

    能给个git或gitee地址吗?你给个csdn资源下载地址也行啊,现在没人用你这种直接拷jar包的方式了

    点赞 评论 复制链接分享
  • weixin_43457559 哦糟了 4月前

    jar包的截图就是最后一张图的那几个jar包。之后我全换了。代码只有四个,全部在正文了,就User,UserDao,Servlet和JDBCUtil这四个。

     

    点赞 评论 复制链接分享
  • qq_21259459 张张小 4月前

    把代码传上来就好分析了,这种要么版本兼容问题,要么配置问题

    点赞 评论 复制链接分享
  • weixin_43457559 哦糟了 4月前

    第一种试了,还是一样的问题,我现在觉得是不能用template

     

    点赞 评论 复制链接分享
  • qq_37949192 Iot-Mr.Qu 4月前

    第一种:不要用BeanPropertyRowMapper,换一种方式

    /**
    	 * @return
    	 * 查询全部信息
    	 */
    	@RequestMapping("/list")
    	public List<Map<String, Object>> itemsList() {
    		String sql = "select * from items";
    		List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
    		return list;
    	}

    第二种: 

    public List<Grade> findAll() {
            //封装行数据映射
            RowMapper<Grade> rowMapper=new RowMapper<Grade>() {
                @Override
                public Grade mapRow(ResultSet rs, int rowNum) throws SQLException {
                    Grade grade=new Grade(rs.getInt("GradeId"),rs.getString("GradeName"));
                    return grade;
                }
            };
            return jdbcTemplate.query("select * from Grade", rowMapper);
        }
    点赞 评论 复制链接分享
  • zte1055889498 XKIND 4月前

    检查 jdk 版本与 spring 版本是否兼容

    点赞 评论 复制链接分享
  • weixin_43457559 哦糟了 4月前

    还是不行,我现在准备把所有的Jar包都换一边。再看看。好难2333

    我是不是采纳你就可以悬赏了?虽然还是不行,麻烦了你一下午。怪不好意思的。

     

    点赞 评论 复制链接分享
  • benpaodexin_l benpaodexin_l 4月前

    可能就是以前使用1.7编译了

    点赞 评论 复制链接分享
  • benpaodexin_l benpaodexin_l 4月前

    使用这个重新编译下整个项目,再运行看看

    点赞 评论 复制链接分享
  • benpaodexin_l benpaodexin_l 4月前

    点赞 评论 复制链接分享
  • benpaodexin_l benpaodexin_l 4月前

    是不是jar包版本不对?

    点赞 评论 复制链接分享
  • weixin_43457559 哦糟了 4月前

    不用druid连接池,直接Class.forName(),connection和statement就可以。一用连接池就有问题。

    点赞 评论 复制链接分享
  • weixin_43457559 哦糟了 4月前

    刚才又把jdk环境变量又配了一边,还是不行。

     

    点赞 评论 复制链接分享
  • benpaodexin_l benpaodexin_l 4月前

    你搜索下idea配置JDK1.8,看下哪里没设置好

    点赞 评论 复制链接分享
  • weixin_43457559 哦糟了 4月前

    我之前用的jdk1.7,但是最后转成jdk1.8了

     

    点赞 评论 复制链接分享
  • benpaodexin_l benpaodexin_l 4月前

    你什么时候用低版本的jdk了吧

     

    点赞 评论 复制链接分享
  • weixin_43457559 哦糟了 4月前

    刚看了一下环境变量就是1.8.0_40

    点赞 评论 复制链接分享
  • bill20100829 歇歇 4月前

    直接把开发环境Copy到目标机器,或者服务器安装开发环境重新发布

    点赞 评论 复制链接分享
  • benpaodexin_l benpaodexin_l 4月前

    你的环境变量配置的是1.8么?

    点赞 评论 复制链接分享
  • weixin_43457559 哦糟了 4月前

    大佬,具体是在哪里调。我在Project Structure里Modules设置的是jdk1.8

    点赞 评论 复制链接分享
  • qq_21259459 张张小 4月前

    编译和运行的jdk不一致

    点赞 评论 复制链接分享

为你推荐