[英]Exception handler doesn't return correct response
我有以下签名的控制器方法:
@PostMapping("/rest_upload")
public DeferredResult<ResponseEntity> upload(@RequestParam("file") MultipartFile multipartFile, HttpServletRequest request) throws IOException {
我有以下异常处理程序:
@ExceptionHandler(MultipartException.class)
@ResponseStatus(HttpStatus.PAYLOAD_TOO_LARGE)
@ResponseBody
public String handleMaxUploadSizeExceededException(MultipartException e) {
logger.warn("MultipartException occurred", e);
String rootCauseMessage = ExceptionUtils.getRootCauseMessage(e);
return rootCauseMessage.substring(rootCauseMessage.indexOf(":") + 1);
}
当我发送的文件大小(120MB)大于可配置的最大值(100MB)时,将调用此处理程序,但是在浏览器中,我看到以下内容:
和详细信息:
如何解决此问题?
这个豆解决了我的问题:
@Bean
public TomcatEmbeddedServletContainerFactory tomcatEmbedded() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
tomcat.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> {
// configure maxSwallowSize
if ((connector.getProtocolHandler() instanceof AbstractHttp11Protocol<?>)) {
// -1 means unlimited, accept bytes
((AbstractHttp11Protocol<?>) connector.getProtocolHandler()).setMaxSwallowSize(-1);
}
});
return tomcat;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.