spring boot2.0.2内置tomcat修改参数限制(附文件上传)

Spring Boot 2.0.2版本(springboot是内置tomcat,所以没有server.xml)

异常:More than the maximum number of request parameters (GET plus POST) for a single request ([10,000]) were detected.Any parameters beyond this limit have been ignored. To change this limit, set the maxParameterCount attribute on the Connector.

解释:大概意思就是说请求参数的数量超过了默认的10,000,要想解决,建议修改maxParameterCount 。

前期自测根本没有这么大请求量,所以没有遇到过这种问题,直到用户反馈。首先是一顿百度,各种尝试均失败。最后!!!终于找到了,整理如下,(大多都说的以下两种,想要快速解决直接看第二点)

对于内置tomcat

先说下修改参数限制

1、修改yml/properties配置文件

eg:yml

server:
	tomcat:
		max-http-post-size: 0 #设置为0是取消参数限制,有的是-1,这和版本相关

修改配置文件我是没有生效,如果有成功的道友麻烦告知怎么修改,抱拳!

2、添加配置类,修改tomcat的MaxParameterCount

自定义tomcat容器
TomcatServletWebServerFactory !!!!只有这个生效了(适用2.0+版本),完美解决问题~

import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
@Configuration
public class tomcatConfig{
	@Bean
	public TomcatServeletWebServerFactory tomcatServletWebServerFactory (){
		TomcatServletWebServerFactory tomcatServletWebServerFactory = new TomcatServletWebServerFactory();
		 tomcatServletWebServerFactory.addConnectorCustomizers(connector -> {
		connector.setMaxParameterCount(Integer.MAX_VALUE);
		 });
		 return tomcatServletWebServerFactory; 
	}
}

同理,修改附件上传的配置

    @Bean
    public MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();
        //  单个数据大小
        factory.setMaxFileSize("1024MB"); // KB,MB
        /// 总上传数据大小
        factory.setMaxRequestSize("1024MB");
        return factory.createMultipartConfig();
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zoriah

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值