今晚在做项目时,项目中用到了CommonsMultipartFile的对象,这是一个Spring自带的文件流。
当我写好代码后,启动项目却报错了。第一行异常代码是bean创建异常:
org.springframework.beans.factory.BeanCreationException: Error creating bean with
name 'shopServiceImpl' defined in file [E:\apache-tomcat-8.0.53\wtpwebapps\o2o\
WEB-INF\classes\com\czx\o2o\service\impl\ShopServiceImpl.class]: Initialization of bean failed;
nested exception is java.lang.NoClassDefFoundError:
org/apache/commons/fileupload/FileUploadException
起初我以为是Service层有问题,检查了刚写好的Service层,感觉没有任何问题。又从百度上找bean相关的问题
找到了一个文件上传解析器的bean配置。
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="utf8"/>
<property name="maxUploadSize" value="20971520"/> <!--文件最大上传大小 20M-->
<property name="maxInMemorySize" value="20971520"/> <!--最大内存-->
</bean>
配置了文件上传解析器后依然报错。。。
找了好半天后才看到下面还有个异常:
nested exception is java.lang.NoClassDefFoundError:
org/apache/commons/fileupload/FileUploadException
于是将这段异常代码复制到百度上才明白,原来是缺少了commons-fileupload的依赖。
将依赖导入后启动项目,就不会报错了。
总结:
项目中如果用到CommonsMultipartFile的话,要导入commons-fileupload的依赖。