【发布时间】:2025-10-08 12:50:01
【问题描述】:
我正在尝试构建一个具有文件上传功能的简单 Spring MVC Web App。我收到以下错误:
java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory
经过快速搜索,所有答案都指向缺少依赖项,但在我的情况下似乎并非如此:
我在 pom.xml 中包含了以下代码:
<dependencies>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
</dependencies>
将commons.io-2.4.jar 和commons.fileupload-1.3.1.jar 添加到lib 文件夹中。
我发现一个有趣的事情是每当我删除代码时:
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize">
<value>10000000</value>
</property>
<property name="maxInMemorySize">
<value>10000000</value>
</property>
</bean>
网络应用运行良好(当然我也删除了文件上传表单。)
【问题讨论】:
-
该类肯定存在于 commons-fileupload-1.3.1 中,所以我认为您需要仔细检查您的部署以确保 jar 的存在。
-
@SteveC 非常感谢!!!问题是部署中缺少 jar 文件。我不太明白为什么jar文件没有自动包含在部署中(我使用的是intelliJ,我认为文件夹
lib中的jar文件应该自动包含在工件中)因为我已经将它们包含在依赖项中并且它们是在 lib 文件夹中。我怎么能接受你的回答?
标签: spring maven spring-mvc