HTTP Status 500 – Internal Server Error

在完成Servlet跳转的时候发生报错:

HTTP Status 500 – Internal Server Error
Type Exception Report

Message Servlet execution threw an exception

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

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.caiden.Servlet.LoginServlet.doPost(LoginServlet.java:28)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
	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.caiden.Servlet.LoginServlet.doPost(LoginServlet.java:28)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Note The full stack trace of the root cause is available in the server logs.

Apache Tomcat/8.5.31

具体错误截图如下所示:HTTP Status 500 – Internal Server Error_第1张图片
先来说一下是在做什么的时候发生错误的吧:
当我完成登陆页面信息的填写,点击登录跳转到 LoginServlet处理请求逻辑的时候出现的报错。

错误原因寻找过程:
开始的时候,根据页面提示的报错信息,我找到了 LoginServlet.java这个文件的第28行,(即下图所示的代码),然后,对本行代码的前后逻辑进行检测,首先我怀疑的是 前台页面数据没有传到后台来,以及用户名与密码没有提取处理,然鹅,事实证明我的这个想法错误。
然后我把目光转移到了UserDao userDao = new UserDao();这个语句本身以及 UserDao.java 这个文件本身的逻辑错误,为此,编写了Junite测试代码 Test_01,(如下图所示),证明得到,非但UserDao没有错误,就是整体的代码逻辑没有一点错误!!!
这就让我开始摸不到头脑了,我开始验证new UserDao()到底有没有执行,我在 UserDao.java这个文件的构造函数里面加了一串✳来验证它到底执行了没有,事实证明,它并没有执行。此刻,我一头雾水。
HTTP Status 500 – Internal Server Error_第2张图片
Test_01测试代码HTTP Status 500 – Internal Server Error_第3张图片
问题的发现:
通过上面的种种验证,我的整体的逻辑代码没有错误,那么为什么偏偏到了第28行就不执行了呢?我为此想到过我的jar包损坏或者其他一些更糟糕的原因,可是,万万没有想到的是,错误出现在了项目自动部署到TomCat的时候,缺少了lib目录!!!(如下图所示)找了大半个百度,最后把问题转向了项目部署上,结果,还真是这么回事。我的已部署的项目上缺少lib(存放jar包)的目录。
HTTP Status 500 – Internal Server Error_第4张图片
问题的解决:
重新把项目部署到TomCat即可HTTP Status 500 – Internal Server Error_第5张图片

你可能感兴趣的:(笔记,java,servlet,报错)