求报错500-内部服务器错误的解决方法

houdi_5113 2019-12-03 09:18:23
新手求助
出现500-内部服务器错误,试过了很多方法,更换Tomcat服务器版本也不起作用


HTTP Status 500 – Internal Server Error

Type 异常报告

描述 服务器遇到一个意外的情况,阻止它完成请求。

Exception

java.lang.NullPointerException
com.houdi.controller.UserAddServlet.doGet(UserAddServlet.java:28)
javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

Note 主要问题的全部 stack 信息可以在 server logs 里查看
Apache Tomcat/9.0.22


UserAddServlet.java代码片段

package com.houdi.controller;

import com.dao.UserDao;
import com.model.Users;

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

public class UserAddServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String userName,loginName,password,email;
UserDao dao = null;
Users user = null;
int flag = 0;
PrintWriter out = null;

userName = request.getParameter("userName");
loginName = request.getParameter("loginName");
password = request.getParameter("password");
email = request.getParameter("email");
user = new Users(userName,loginName,password,email);//有问题

flag = dao.userAdd(user);

response.setContentType("text/html;charset=utf-8");
out = response.getWriter();

if (flag == 1){
out.print("<center><font style=color:green;font-size:30px>用户注册成功</font></center>");
}else {
out.print("<center><font style=color:red;font-size:30px>用户注册失败</font></center>");
}
}
}



UserDao.java代码片段

package com.dao;

import com.model.Users;
import com.util.DBUtil;

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

public class UserDao {
//用户信息添加
public int userAdd(Users user) {
String sql = "insert into users(userName,loginName,psssword,email)" + "value(?,?,?,?)";
Connection con = null;
PreparedStatement ps = null;
int flag = 0;


try {
con = DBUtil.getConnection();
ps = con.prepareStatement(sql);
ps.setString(1, user.getUserName());
ps.setString(2, user.getLoginName());
ps.setString(3, user.getPassword());
ps.setString(4, user.getEmail());
flag = ps.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
} finally {
DBUtil.close(con, ps, null);
}
return flag;
}

}

User.java代码片段

package com.model;

public class Users {
private Integer userId;//用户编号
private String userName;//用户姓名
private String loginName;//登录名
private String password;//密码
private String email;//email

public Integer getUserId() {
return userId;
}

public void setUserId(Integer userId) {
this.userId = userId;
}

public String getUserName() {
return userName;
}

public void setUserName(String userName) {
this.userName = userName;
}

public String getLoginName() {
return loginName;
}

public void setLoginName(String loginName) {
this.loginName = loginName;
}

public String getPassword() {
return password;
}

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

public String getEmail() {
return email;
}

public void setEmail(String email) {
this.email = email;
}

public Users() {
}

public Users(Integer userId, String userName, String loginName, String password, String email) {
this.userId = userId;
this.userName = userName;
this.loginName = loginName;
this.password = password;
this.email = email;
}

public Users(String userName, String loginName, String password, String email) {
this.userName = userName;
this.loginName = loginName;
this.password = password;
this.email = email;
}
}

...全文
3444 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
houdi_5113 2019-12-15
  • 打赏
  • 举报
回复
引用 7 楼 聚繁大BUG的回复:
[quote=引用 6 楼 houdi_5113 的回复:] [quote=引用 3 楼 聚繁大BUG 的回复:] 看到你的异常时空指针,我就不继续往下看了,只给你个建议吧!这种问题属于代码问题,多检查检查,换Tomcat版本是没用的。 [quote=引用 2 楼 人生呐 的回复:] 你这个dao就没有实例化,你怎么能调用他的方法
他说的对,你的dao没有实例化,UserDao dao = null; 直接赋值null,然后你去调用这个对象的方法,肯定空指针啊,也就是java.lang.NullPointerException[/quote] 你好,我把上面的代买改过来之后再次运行出现java.lang.NoClassDefFoundError: Could not initialize class com.util.DBUtil这个错误是怎么回事?

HTTP Status 500 – Internal Server Error

Type 异常报告

消息 Servlet execution threw an exception

描述 服务器遇到一个意外的情况,阻止它完成请求。

Exception

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

Root Cause

java.lang.NoClassDefFoundError: Could not initialize class com.util.DBUtil
	com.dao.UserDao.userAdd(UserDao.java:33)
	com.houdi.controller.UserAddServlet.doGet(UserAddServlet.java:28)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

Note 主要问题的全部 stack 信息可以在 server logs 里查看
Apache Tomcat/9.0.22
[/quote] 你这个错误就是找不到类DBUtil,说是有两个jar包冲突了,有两个同包名的DBUtil,导致jvm不知道使用哪个类[/quote] 好的,谢谢你的回答!
BigBug博客 2019-12-09
  • 打赏
  • 举报
回复
引用 6 楼 houdi_5113 的回复:
[quote=引用 3 楼 聚繁大BUG 的回复:] 看到你的异常时空指针,我就不继续往下看了,只给你个建议吧!这种问题属于代码问题,多检查检查,换Tomcat版本是没用的。 [quote=引用 2 楼 人生呐 的回复:] 你这个dao就没有实例化,你怎么能调用他的方法
他说的对,你的dao没有实例化,UserDao dao = null; 直接赋值null,然后你去调用这个对象的方法,肯定空指针啊,也就是java.lang.NullPointerException[/quote] 你好,我把上面的代买改过来之后再次运行出现java.lang.NoClassDefFoundError: Could not initialize class com.util.DBUtil这个错误是怎么回事?

HTTP Status 500 – Internal Server Error

Type 异常报告

消息 Servlet execution threw an exception

描述 服务器遇到一个意外的情况,阻止它完成请求。

Exception

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

Root Cause

java.lang.NoClassDefFoundError: Could not initialize class com.util.DBUtil
	com.dao.UserDao.userAdd(UserDao.java:33)
	com.houdi.controller.UserAddServlet.doGet(UserAddServlet.java:28)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

Note 主要问题的全部 stack 信息可以在 server logs 里查看
Apache Tomcat/9.0.22
[/quote] 你这个错误就是找不到类DBUtil,说是有两个jar包冲突了,有两个同包名的DBUtil,导致jvm不知道使用哪个类
houdi_5113 2019-12-06
  • 打赏
  • 举报
回复
引用 3 楼 聚繁大BUG 的回复:
看到你的异常时空指针,我就不继续往下看了,只给你个建议吧!这种问题属于代码问题,多检查检查,换Tomcat版本是没用的。


[quote=引用 2 楼 人生呐 的回复:]
你这个dao就没有实例化,你怎么能调用他的方法

他说的对,你的dao没有实例化,UserDao dao = null; 直接赋值null,然后你去调用这个对象的方法,肯定空指针啊,也就是java.lang.NullPointerException[/quote]

你好,我把上面的代买改过来之后再次运行出现java.lang.NoClassDefFoundError: Could not initialize class com.util.DBUtil这个错误是怎么回事?


HTTP Status 500 – Internal Server Error

Type 异常报告

消息 Servlet execution threw an exception

描述 服务器遇到一个意外的情况,阻止它完成请求。

Exception

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

Root Cause

java.lang.NoClassDefFoundError: Could not initialize class com.util.DBUtil
com.dao.UserDao.userAdd(UserDao.java:33)
com.houdi.controller.UserAddServlet.doGet(UserAddServlet.java:28)
javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

Note 主要问题的全部 stack 信息可以在 server logs 里查看
Apache Tomcat/9.0.22
BigBug博客 2019-12-03
  • 打赏
  • 举报
回复
看到你的异常时空指针,我就不继续往下看了,只给你个建议吧!这种问题属于代码问题,多检查检查,换Tomcat版本是没用的。
引用 2 楼 人生呐 的回复:
你这个dao就没有实例化,你怎么能调用他的方法
他说的对,你的dao没有实例化,UserDao dao = null; 直接赋值null,然后你去调用这个对象的方法,肯定空指针啊,也就是java.lang.NullPointerException
  • 打赏
  • 举报
回复
你这个dao就没有实例化,你怎么能调用他的方法
  • 打赏
  • 举报
回复
。。。你是新手么,你空指针是代码问题,你改配置有什么用
17:UserDao dao = null;
28:flag = dao.userAdd(user);
这不是明星空指针么?
舍得Lcon 2019-12-03
  • 打赏
  • 举报
回复
新手还是需要仔细一点,根据异常信息可以找到是在哪个类多少行代码出的错。加油吧!
天涯若风 2019-12-03
  • 打赏
  • 举报
回复
UserDao dao = null;这里出问题

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧