org.apache.jasper.JasperException: java.lang.NullPointerException org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:356) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
访问jsp页面时出现这个异常,是因为WEB-INF/lib目录下加入了jsp的jar包,jsp的jar会由容器自己提供,不需要自己添加,去掉就不会报错了。
新的tomcat会报另一个错:org.apache.jasper.JasperException: Unable to compile class for JSP。
原因跟上面一样都是jar包冲突,删掉工程下面的jar包就可以了。
Ecplise的build path里引用的jar主要分为2类,一类是相对路径,一类是绝对路径。相对路径的jar是通过Add Jars添加的,绝对路径是通过Add External Jar添加的,一般情况下通过Add External Jar添加的jar包是不会被部署到工程的lib目录下的(在工作中碰到过也会被部署过去,具体原因还不清楚)。所以为了解决eclipse的编译错误,一般通过Add External Jar添加需要的jar包。
分享到:
相关推荐
如果jsp页面报如下异常 org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.Customer.addCustomerInfo_jsp org.apache.jasper.servlet.JspServletWrapper.getServlet...
JSP页面在首次请求时会被编译成Servlet,然后每次请求都会实例化一个`javax.servlet.jsp.JspServletWrapper`来处理。`jsp-api-2.1.jar`中的`JspServletWrapper`类就是负责这个过程的。 总的来说,`jsp-api-2.1.jar`...
为了实现这一目标,攻击者可能需要修改Tomcat的配置或利用特定的漏洞,使得Tomcat在找不到源JSP文件时不会立即清理`JspServletWrapper`,从而保持对已编译JSP的访问权限。 在进行源代码调试时,开发者可以跟踪`...
例如,JSP的编译过程涉及到了`JspCompilationContext`和`JspServletWrapper`等类,这些都可以在源码中找到具体实现。 总结来说,"tomcat_study.zip"提供的Tomcat 8.5.51源码是一份宝贵的教育资源,可以帮助开发者...
在`org.apache.jasper`包中,`JspCompilationContext`和`JspServletWrapper`是关键类,它们负责JSP的预编译和运行时执行。JSP被转换为Java源代码,然后编译成Servlet,最后由Catalina进行调度和执行。 除了这些核心...
源码中的`java/org/apache/jasper/JspC`类用于预编译JSP,而`java/org/apache/jasper/servlet/JspServletWrapper`则处理JSP的请求。 7. **安全管理**:Tomcat的安全特性,如用户认证、角色管理和访问控制,可以在`...