我正在使用 Spring 3.1.1。我有一个文件上传功能并实现了 HandlerExceptionResolver 来处理文件大小限制。我已经在 spring mvc xml 中配置了“maxUploadSize”属性的大小。我的应用程序使用带有开放 ID 的弹簧安全性。
我在该上传控制器的 resolveException() 中使用下面的代码。RestResponse 是一个带有错误消息和状态的 pojo
ModelAndView mav = new ModelAndView();
mav.setView(new MappingJacksonJsonView());
RestResponse fail_response = new RestResponse();
fail_response.setMessage("Max upload limit failure.");
fail_response.setStatus("FAIL");
mav.addObject("restResponse", fail_response);
return mav;
我可以从日志中看到,resolveException() 被调用,但是 json 响应没有显示在 rest api 客户端/浏览器中。我可以在日志中看到异常(最大上传大小超过 10485760 字节;嵌套异常是 org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException:请求被拒绝,因为它的大小(30611515)超过了配置的最大值(10485760))上传后立即,但上传仍在继续,一段时间后,浏览器中会显示 json 错误消息(如上所示)。
我确实在 stackoverflow 和其他门户中检查了这个问题,但找不到为什么它没有显示或响应返回到 UI。