其他分享
首页 > 其他分享> > SpringBoot2.0与Undertow容器采坑笔录

SpringBoot2.0与Undertow容器采坑笔录

作者:互联网

1、前言

2、解决的思路

 

 

 

UndertowMessages.png

报错点:{"timestamp":"2019-06-04 16:09:53","status":500,"error":"Internal Server Error","message":"io.undertow.server.handlers.form.MultiPartParserDefinition$FileTooLargeException: UT000054: 上传的单个文件大小不能超过10MB","path":"/rest/importData"}

Locale.setDefault(Locale.SIMPLIFIED_CHINESE);

3、建议方案

4、找到问题所在根源

<!--web 模块-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <!--排除(去除)tomcat依赖-->
        <exclusion>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <groupId>org.springframework.boot</groupId>
        </exclusion>
    </exclusions>
</dependency>
<!--undertow容器-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-undertow</artifactId>
</dependency>

5、Springboot2.x文件上传配置参数

spring.servlet.multipart.enabled=true # 是否支持多部分上传。
spring.servlet.multipart.max-file-size=1MB # 最大支持文件上传的大小
spring.servlet.multipart.max-request-size=10MB # 支持请求最大文件上传的大小

6、 undertow容器的大坑异常SpringBoot无法捕获异常处理

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

7、新建一个类统一处理拦截异常

/**
 * 全局异常处理器
 */
@Slf4j
@RestControllerAdvice
public class GlobalExceptionHandlerResolver {
    /**
     * @Descript   统一处理文件过大问题.
     */
 @ExceptionHandler(MaxUploadSizeExceededException.class)
    public R handleMaxUploadSizeExceededException(MaxUploadSizeExceededException e) {
        log.error("上传文件过大 ex={}", e);
        return retMsgCode("上传文件过大", 9999);
    }
}

8、SpringBoot2.x文档

9、推荐了解的文章

10、Undertow官方

Undertow是一个用java编写的灵活的高性能web服务器,提供基于NIO的阻塞和非阻塞API。
Undertow具有基于组合的体系结构,允许您通过组合小型的单一用途处理程序来构建web服务器。它使您可以灵活地选择是使用完整的Java EE servlet 4.0容器,还是使用低级的非阻塞处理程序,还是使用两者之间的任何东西。Undertow被设计为完全可嵌入的,易于使用fluent builder api。Undertow的生命周期完全由嵌入应用程序控制。Undertow由JBoss赞助,是Wildfly应用程序服务器中的默认web服务器。

10、个人感想与疑问



作者:爱学习的蹭蹭
链接:https://www.jianshu.com/p/c171eed87f95
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

标签:文件,SpringBoot2.0,采坑,spring,boot,undertow,Undertow,上传
来源: https://www.cnblogs.com/telwanggs/p/15852978.html