解决The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory

环境:jdk1.6、tomcat6、ant

问题:部署项目到tomcat后,启动项目后访问连接报出

严重: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP:
 
An error occurred at line: 23 in the generated java file
The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory
 
Stacktrace:
 at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
 at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
 at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
 at org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
 at org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
 at org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
 at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589)
 at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
 at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
 at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
 at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
 at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
 at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
 at java.lang.Thread.run(Thread.java:619)

解决办法:是由于tomcat -> webapps -> web -> WEB-INF ->lib下javax.servlet.jsp.jar 有问题,在apache-tomcat-6.0.45\lib下

 对比之下,在项目路径下并未有重复的jar包,但项目路径下有

 tomcat的lib中并没有,则直接删除。

可能性1:比对一下和项目依赖包有无冲突,若有冲突删除项目中的依赖包保留tomcat

可能性2:tomcat环境中的包版本太低,删除即可。

其他包诸如servlet-api.jar/javax-servlet-api.jar,jsp-api.jar/javax-jsp-api.jar也相应的比对一下。

posted @ 2021-09-08 12:10  it蛰伏者  阅读(192)  评论(0编辑  收藏  举报