我正在使用Spring MVC接收与表单一起上传的文件。这是我的控制器,它接收请求并处理可能的异常:
@RequestMapping(method = RequestMethod.POST,
headers = {"content-type=multipart/form-data"},
produces = "application/xml")
public @ResponseBody MyStuff processFormUpload( @RequestParam("file") CommonsMultipartFile file) throws
//return beautiful xml response generated from the input file;
}
@ExceptionHandler(Exception.class)
public ModelAndView exceptionHandler(Exception ex, HttpServletResponse response) {
//return pretty exception page;
}
这就是我初始化文件解析器的方式:
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="100000"/>
</bean>
即使在生成响应时引发异常,一切都运行良好。唯一的问题是当有人尝试上传大于maxUploadSize的文件时。在这种情况下,exceptionHandler 不会捕获异常,并且服务返回一个丑陋的内部错误 500,由MaxUploadSizeExceededException
.
如何配置我的 Web 应用程序以捕获这种异常?我想使用@ExceptionHandlers
而不必过多地改变项目结构。