本文碰到的错误问题,其产生原因非常的简单,在大概看完背景之后,将先给出。
错误的详细信息在文章末尾附上。
背景:
因为需要更新某业务的原因,整理调试了由三方公司开发的一个用于前置对接功能的web应用。
虽然其使用的spring等版本非常的老旧(是的,有些系统竟然还在用spring2时代的东西,真真汗……),但由于提供了某个业务版本的源代码,作为整个业务中间节点的我,想了解整个流程,显然是将前置跑起来更直观。因此,我还是尝试在当前的环境内将其运行起来。
在各种折腾修改将其在idea内通过maven编译并建立配置运行后,由浏览器访问web应用时(如http://localhost:9090/projname/index.jsp),发生了本文标题里描述的错误。
这里先将出错的原因说明如下:
对于很老的系统,首先应该考虑jdk、tomcat等基本环境的版本问题,本文遇到的错误就是此web应用只能在tomcat5.5内运行。
关于类似的报错问题,搜索到一些其他可能原因的文章,摘附如下:
http://blog.youkuaiyun.com/gaofenglxx/article/details/52234681
https://stackoverflow.com/questions/4501829/unable-to-load-class-for-jsp
附:完整的报错内容
HTTP Status 500 - Unable to load class for JSP
--------------------------------------------------------------------------------
type Exception report
message Unable to load class for JSP
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to load class for JSP org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:630) org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:149) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:340) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:723) com. xxxx.xxx.xxx.util.EncodingFilter.doFilter(EncodingFilter.java:28)
root cause
java.lang.ClassNotFoundException: org.apache.jsp.index_jsp java.net.URLClassLoader$1.run(URLClassLoader.java:202) java.security.AccessController.doPrivileged(Native Method) java.net.URLClassLoader.findClass(URLClassLoader.java:190) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:134) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66) org.apache.jasper.JspCompilationContext.load(JspCompilationContext.java:628) org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:149) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:340) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) javax.servlet.http.HttpServlet.service(HttpServlet.java:723) com.xxxx.xxx.xxx.util.EncodingFilter.doFilter(EncodingFilter.java:28)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.45 logs. |