当我从Eclipse运行我的应用程序时,它对servlet api 3.1.0和3.0.1的运行没有任何错误。<dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version></dependency>我将tomcat 8.0.21用于日食。我已经在运行tomcat 8.0.14稳定版本的ubuntu机器上设置了tomcat8。不幸的是,如果我使用servlet api 3.1.0,则会收到以下错误消息。但是它适用于旧版本3.0.1。root causeorg.apache.jasper.JasperException: Unable to compile class for JSP: An error occurred at line: [50] in the generated java file: [/var/lib/tomcat8/work/Catalina/localhost/ROOT/org/apache/jsp/WEB_002dINF/view/templates/login_002dtemplate_jsp.java]The method getDispatcherType() is undefined for the type HttpServletRequestStacktrace: org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103) org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:199) org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:450) org.apache.jasper.compiler.Compiler.compile(Compiler.java:361) org.apache.jasper.compiler.Compiler.compile(Compiler.java:336) org.apache.jasper.compiler.Compiler.compile(Compiler.java:323) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357) 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:725)为什么会出现此错误?如何解决这个问题?
3 回答

湖上湖
TA贡献2003条经验 获得超2个赞
对于Maven用户,您可以在这里找到几个不错的答案。
我仍处于黑暗时代,并且没有为Tomcat项目使用依赖项管理器。如果您像我一样遇到此问题,请按照以下方法解决:Tomcat提供了javax.servlet类,因此这些类不必位于项目的lib文件中。(我原来servlet-api-2.5.jar在/WEB-INF/lib目录中有。)但是,您可能仍需要编译它(我做了),因此您应该将其移动到java类路径中包含的位置。您可能还需要告诉您的IDE外观。
希望能有所帮助。
添加回答
举报
0/150
提交
取消