java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest

Spring Boot内嵌tomcat启动报错如下:

GRAVE: Servlet.service() for servlet DiffOntology threw exception
java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest
    at org.apache.commons.fileupload.servlet.ServletRequestContext.getContentType(ServletRequestContext.java:73)
    at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:882)
    at org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:331)
    at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:349)
    at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
    at DiffOntology.doPost(DiffOntology.java:38)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    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.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    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.Http11Processor.process(Http11Processor.java:852)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:619)

解决方案

更换内嵌tomcat版本

Gradle
compile group: 'org.springframework.boot', name: 'spring-boot-starter-tomcat', version: '1.3.5.RELEASE'
Maven
<!-- http://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-tomcat -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <version>1.3.5.RELEASE</version>
</dependency>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这是一个Java错误,表示找不到javax.servlet.http.HttpServletRequest类。这通常是由于缺少相关的Java Servlet API库或类路径配置错误导致的。要解决此问题,您需要确保正确配置了类路径,并且已经包含了所需的Java Servlet API库。 ### 回答2: Java是一门面向对象的编程语言,非常流行且被广泛应用于各种应用程序的开发。Java中经常会用到Java Servlet技术,而在Java Servlet中,HttpServletResponse类和HttpServletRequest类是非常重要的两个类。这两个类通常被用来处理HTTP请求和响应。HttpServletResponse类用来发送服务器响应,HttpServletRequest类用来接收和处理客户端请求信息。 然而,在某些情况下,当开发者在使用HttpServletRequest类时,可能会出现如题所示的错误:java.lang.noclassdeffounderror: javax/servlet/http/httpservletrequest。 这个错误通常表示缺少了HttpServletRequest类所在的javax.servlet.http包,或者该包中的某些类文件缺失或不兼容。这个问题可能会出现在使用某些IDE,如Eclipse、NetBeans或Idea时,并且经常在升级Java版本或导入项目时出现。 解决这个问题有几种方法。一种方法是通过手动添加javax.servlet.http.jar包来解决。这通常是在Web服务器中部署代码时使用的方法。开发者可以从官方网站上下载javax.servlet.http.jar文件,并将其添加到项目的classpath中。 另一种方法是在开发环境中修改项目的构建路径,以将Web服务器提供的servlet-api.jar添加到classpath中。这种方法可以在开发过程中解决该问题,但需要注意不要将servlet-api.jar打包到WAR文件中,以免在部署到服务器时出现问题。 最后,如果仍然无法解决该问题,可以考虑升级Java EE版本或使用其他版本的servlet-api.jar文件。 总之,可以使用上述方法来解决这个错误,使开发者能够顺利开发和部署Java Servlet应用程序。 ### 回答3: Java.lang.noclassdeffounderror: javax/servlet/http/httpservletrequest(无法找到类javax / servlet / http / httpservletrequest)是Java应用程序中的一个常见错误。通常,这种类型的错误表示程序试图引用一个在编译时存在的类,但在运行时却找不到它。 通常,这种错误的原因是缺少必要的JAR文件或类库。在Java应用程序中,这通常是由于分发的WAR文件包中缺少JAR文件而导致的。在大多数情况下,这是由于在部署过程中丢失了某些必要的文件或某些文件意外地被删除所致的。 另外一个可能的原因是应用程序尝试在其类路径中引用某些类文件,但之前引用的类文件发生错误。例如,如果一个类依赖于另一个类,并且另一个类存在问题,则在应用程序中引用该类时就会出现问题。 解决这个错误的方法通常是找出缺少的类或JAR文件,然后将其添加到应用程序的类路径中。或者,您可以将必要的类直接添加到Java应用程序jar文件中。无论 which 程序可能需要的文件丢失,都必须检查JAR文件和类文件路径,并确保运行时环境拥有应用程序所需的所有文件。在某些情况下,右键单击Eclipse项目,选择Properties选项,并选择Java Build Path选项卡中的选项来修改构建路径。 总而言之,错误Java.lang.noclassdeffounderror: javax/servlet/http/httpservletrequest通常是由缺少必要的JAR文件或类文件导致的。要解决此错误,应该检查应用程序的类路径并确保必要的文件存在。如果仍然存在问题,则可以尝试重新编译应用程序并重新部署它。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值