繁体   English   中英

异常处理程序未返回正确的响应

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM