You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maven文件上传项目中HttpServletRequest缺失错误排查与解决

错误原因分析
  • 依赖版本不兼容:你使用的commons-fileupload 1.4基于旧的javax.servlet API开发,它依赖的HttpServletRequest类位于javax.servlet.http包下;但你的项目引入的是jakarta.servlet-api 4.0.4,该API已将Servlet相关类迁移到jakarta.servlet.http包下,两者类路径不匹配,导致ServletFileUpload.parseRequest()方法找不到对应的HttpServletRequest类型。
修复方案

方案一:升级commons-fileupload到支持Jakarta的版本(推荐)

修改pom.xml中的commons-fileupload依赖为2.x版本(该版本适配Jakarta Servlet API):

<dependencies>
    <dependency>
        <groupId>jakarta.servlet</groupId>
        <artifactId>jakarta.servlet-api</artifactId>
        <version>4.0.4</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>2.0.1</version>
    </dependency>
</dependencies>

更新依赖后,Eclipse会自动下载适配版本,解决类路径不匹配问题。

方案二:回退到javax.servlet-api(不推荐,仅作兼容旧版本备选)

若坚持使用commons-fileupload 1.4,可将jakarta.servlet-api替换为旧的javax.servlet-api:

<dependencies>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.4</version>
    </dependency>
</dependencies>

同时需将代码中jakarta.servlet相关导入替换为javax.servlet:

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
额外代码优化提示

代码中文件路径"C:\FileUploadDemo"存在转义问题,Windows系统下路径需使用双反斜杠\\或正斜杠/,否则会导致路径解析错误:

item.write(new File("C:\\FileUploadDemo\\" + item.getName()));
// 或者
item.write(new File("C:/FileUploadDemo/" + item.getName()));

内容的提问来源于stack exchange,提问作者HKS11

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 20:12:07