对于JspFactory类型,方法getJspApplicationContext(ServletContext)是未定义的

Har*_*aji 9 eclipse jsp

这是我在尝试运行JSP文件时在浏览器屏幕上看到的内容.

对于JspFactory类型,方法getJspApplicationContext(ServletContext)是未定义的

堆栈跟踪:

org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler. java:439)org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)org.apache.jasper.compiler.Compiler.compile(Compiler.java:312)org.apache.jasper.compiler.Compiler. compile(Compiler.java:299)org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)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:856)

当我运行它时,在Tomcat窗口上抛出了jasper异常.

Bal*_*usC 31

对于JspFactory类型,方法getJspApplicationContext(ServletContext)是未定义的

方法是在JSP 2.1中引入的.导致此问题的原因有三个:

  1. 您使用的是太旧版本的JSP容器(至少需要Tomcat 6.0).

  2. 你已经声明了错误的Servlet版本web.xml.JSP 2.1与Servlet 2.5密切相关,因此web.xml至少应根据Servlet 2.5规范声明(您仍然需要一个支持Servlet 2.5/JSP 2.1的servlet容器).

  3. 你复制旧的版本具体应用服务器的库到Web应用的/WEB-INF/lib,比如servlet-api.jar,jsp-api.jar等等.你永远不应该这样做.它只会导致类加载冲突.在您的webproject中删除它们,并在应用程序服务器中保留/取消它们.