HTTP Status 500 - java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
type Exception report
message java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:176)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause
java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
java.net.URLClassLoader.findClass(URLClassLoader.java:382)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:131)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:62)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:171)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
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/8.0.35 logs.
Apache Tomcat/8.0.35
原因分析:异常的根本原因就是没有或不能成功将相关的jsp文件转换为servlet;,可能原因:
1.检查报异常的jsp(看本地报的是哪个jsp文件的异常,本人的是index.jsp文件)文件是否有语法错误,有些博主说因为有<!-- -->注释可能导致错误,需要去掉,但本人的不是。
2.检查报异常的jsp文件中是否创建了不可创建的java对象,比如创建的java对象设置了私有构造函数,这种对象不可用new关键字创建,若要创建,需要设置共有的构造函数或者不写,系统默认的构造函数是共有的;
3.版本问题:jdk、服务器(tomcat)、jsp的版本兼容问题,比如引用的jsp-api.jar和servlet-api.jar属于哪个版本,建议引用的是服务器的版本,即把以上2个包丢尽项目的额lib文件中,或者查看官方版本兼容规范,查看版本方法,分别解压以上2个jar包,进入META-INF,用记事本工具打开MANIFEST.MF即可看到相关版本信息。本人搜集图片如下,自行对照:
4.实在不行重新创建该jsp文件或换个名字看看是否还报该异常;
注意:整改后需要重新编译(删除原来的编译文件,maven项目可以执行install命令)源文件,否则该异常仍然存在。