对于类型HttpServletRequest的方法,未定义方法getDispatcherType()

当我从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 cause


org.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 HttpServletRequest


Stacktrace:

    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)

为什么会出现此错误?如何解决这个问题?


鸿蒙传说
浏览 1632回答 3
3回答

湖上湖

对于Maven用户,您可以在这里找到几个不错的答案。我仍处于黑暗时代,并且没有为Tomcat项目使用依赖项管理器。如果您像我一样遇到此问题,请按照以下方法解决:Tomcat提供了javax.servlet类,因此这些类不必位于项目的lib文件中。(我原来servlet-api-2.5.jar在/WEB-INF/lib目录中有。)但是,您可能仍需要编译它(我做了),因此您应该将其移动到java类路径中包含的位置。您可能还需要告诉您的IDE外观。希望能有所帮助。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java