解决SpringBoot框架因post数据量过大没反应问题(踩坑)

此处网上最多的做法是需要修改tomcat的参数配置大致如下:

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="2000"
redirectPort="8443"
URIEncoding="UTF-8"
maxThreads="3000"
compression="on" compressableMimeType="text/html,text/xml"
maxPostSize="10240"/>

然而对springboot项目来说好像并不管用~~~~~~~~~~~~

最后在尝试下,springboot的application中加入如下两句话:OK~~~~

spring.http.multipart.max-file-size=1000Mb

spring.http.multipart.max-request-size=1000Mb

补充知识:解决springboot2.X发送post请求数量限制问题

今天在测试自己开发的新功能时,发现的一件匪夷所思的事,前台通过ajax发送post请求到后台,请求的数据量非常大,数据到后台发现,controller层对应的方法接收的数据不够,由于后台没有提示什么错误,就各种方式找问题,花费了一天的时间,最后发现了问题,问题的原因:tomcat的限制了post的请求的大小和请求参数的个数;这里记录以下springboot2.x的处理方式:

1、处理post请求的大小,在配置文件中添加如下参数;

server:

tomcat:

max-http-post-size: -1

2、处理post请求参数的个数,在springboot的启动类中,添加如下代码:

@Bean
public TomcatServletWebServerFactory mbeddedServletContainerFactory() {
   TomcatServletWebServerFactory tomcatEmbeddedServletContainerFactory = new TomcatServletWebServerFactory ();

    tomcatEmbeddedServletContainerFactory.addConnectorCustomizers(connector ->{
      connector.setMaxParameterCount(Integer.MAX_VALUE);
    });

    return tomcatEmbeddedServletContainerFactory;
 }

以上这篇解决SpringBoot框架因post数据量过大没反应问题(踩坑)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2020-09-15

记一次springboot服务凌晨无故宕机问题的解决

表述 在一次服务更新后发现每天凌晨0点3秒服务准时挂,开始的时候认为是maven依赖中存在system.exit(3)类似这样的代码,但是我想了下这个代码很多客户都有用到但是只有这一个客户出现了问题,而且另外一个服务没有更新在此前几个月都是没问题的 这几天也是一样无故挂了. 环境 windows服务器 排查 1.初步怀疑是内存泄漏问题,在启动脚本中加入 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=D:\heapdump.log,第二天起来一看

Springboot异常错误处理解决方案详解

1.在有模板引擎的情况下: springboot会默认找 templates/error/错误状态码.html,所以我们要定制化错误页面就可以到templates/error下创建一个[对应错误状态码.html]html文件,当发生此状态码的错误springboot就会来到对应的页面. 同时如果我们想让400-499之间的错误都去同一个错误页面,那我们可以在templates/error下创建一个4xx.html.同理500-599的错误可以用5xx.html. 注意:springboot会优先

Jvm调优和SpringBoot项目优化的详细教程

一.Jvm调优. 参考文章 1.先看一下未设置JVM参数的情况,默认情况下,没有设置任何Jvm参数. idea中安装VisualVM监控jvm的图文教程 2.设置Jvm参数. 配置参数: 关于这些设置的JVM参数是什么意思,参考Jvm调优. -XX:MetaspaceSize=128m (元空间默认大小) -XX:MaxMetaspaceSize=128m (元空间最大大小) -Xms1024m (堆最大大小) -Xmx1024m (堆默认大小) -Xmn256m (新生代大小) -Xss256

IDEA使用Gradle构建SpringBoot项目工程的详细教程

背景 最近在研究搭建spring源码调试环境时,接触到到gradle项目构建工具.由于之前习惯于maven项目的构建,故通过此文记录相关gradle的项目构建知识. Gradle Gradle是一个构建工具,用于管理项目依赖和构建项目工程.Gradle抛弃了Maven的基于XML的繁琐配置,采用特定语言Groovy的配置,大大简化了构建代码的行数. 项目结构 Plugin Sample pluginManagement { repositories { gradlePluginPortal()

优化Java虚拟机总结(jvm调优)

堆设置 -Xmx3550m:设置JVM最大堆内存为3550M. -Xms3550m:设置JVM初始堆内存为3550M.此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存. -Xss128k:设置每个线程的栈大小.JDK5.0以后每个线程栈大小为1M,之前每个线程栈大小为256K.应当根据应用的线程所需内存大小进行调整.在相同物理内存下,减小这个值能生成更多的线程.但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右. -Xmn2g:设置堆

基于JVM 调优的技巧总结分析

这篇是技巧性的文章,如果要找关于GC或者调整内纯的文章,看我其他几篇文章.因为是JVM 调优总结,所以废话少说.从各方面一共收集到以下几个方法:1.升级 JVM 版本.如果能使用64-bit,使用64-bit JVM.    基本上没什么好解释的,很简单将JVM升级到最新的版本.如果你还是使用JDK1.4甚至是更早的JVM,那你首先要做的就是升级.因为JVM从1.4- >1.5->1.6可不是仅仅的版本号升级,或者仅仅往里面加了一堆新的语言特性,这么简单.而是真正在JVM做了重大的改进,每次版

Idea如何导入一个SpringBoot项目的方法(图文教程)

最近公司要求开发工具要用Idea,作为一个eclipse的老员工,记录一下Idea中遇到的坑 刚开始用Idea从Git上导入一个项目时,遇到了很多坑,网上有很多方法,我不多做介绍.只说明一下我使用的方法. 1.本地新建一个文件夹,从git上导入项目到本地文件夹.(git的相关使用请自行百度,这里只讲Idea的使用方法) 2.将这个文件夹直接拖到Idea的启动图标上. 或者,从Idea中File-Open打开你项目的文件夹 3.新导入的SpringBoot项目,需要设置jdk和转maven 设置j

Flyway详解及Springboot集成Flyway的详细教程

Flayway是一款数据库版本控制管理工具,,支持数据库版本自动升级,Migrations可以写成sql脚本,也可以写在java代码里:不仅支持Command Line和java api ,也支持Build构建工具和Spring boot,也可以在分布式环境下能够安全可靠安全地升级数据库,同时也支持失败恢复. Flyway最核心的就是用于记录所有版本演化和状态的MetaData表,Flyway首次启动会创建默认名为SCHEMA_VERSION的元素局表. 表中保存了版本,描述,要执行的sql脚本

SpringBoot集成Nacos的详细教程

一.环境说明 1.CentOS7 2.Jdk1.8 3.Mysql5.7 4.Nacos1.3 5.SpringBoot2.3.1.RELEASE 6.Maven3.6 二.下载Nacos 1.Nacos官网:https://nacos.io/zh-cn/index.html 2.Nacos下载地址:https://github.com/alibaba/nacos/releases/download/1.3.0/nacos-server-1.3.0.tar.gz 三.解压启动Nacos 1.解压

Pycharm 2020.1 版配置优化的详细教程

手残更新Pycharm 2020.1 版时将配置文件都删除了

Gradle的安装和IDEA集成、项目导入的详细教程

一.Gradle简介 Gradle是专注于灵活性和性能的开源构建自动化工具.Gradle构建脚本是使用Groovy或Kotlin DSL 编写的. 高度可定制 -Gradle以最基本的方式可定制和可扩展的方式建模. 快速 -Gradle通过重新使用以前执行的输出,仅处理已更改的输入以及并行执行任务来快速完成任务. 强大 -Gradle是Android的官方构建工具,并支持许多流行的语言和技术. Gradle官网 二.Gradle的安装配置 Gradle可在所有主要操作系统上运行,并且仅需要Jav

将Git存储库克隆到本地IntelliJ IDEA项目中的详细教程

IntelliJ IDEA是Java语言开发的集成环境,IntelliJ在业界被公认为优秀的Java开发工具之一,尤其在智能代码助手.代码自动提示.重构.J2EE支持.Ant.JUnit.CVS整合.代码审查. 创新的GUI设计等方面的功能可以说是超常的. 点击下载IntelliJ IDEA最新试用版 将GitHub存储库克隆到我们的本地计算机 有几种方法可以将Git存储库克隆到本地计算机.您可以使用HTTPS或SSH等选项.我们将使用的是HTTPS,因为它可能是最简单的选择.当我们单击剪贴板图