总结:Exceeded limit on max bytes to buffer : 262144或maxInMemorySize: 262144(解决你的实际问题)

一、先提供解决思路:springboot框架中都大量的对缓冲区有对应的设置,如果光找maxInMemorySize 262144,去解决都不会找到有效的解决办法,因为最少我知道的sping在文件上传、表单提交,webclient发送等都有maxInMemorySize的限制。

所以要先找出出现这个问题是出自哪个类,debug方法,然后在类变量列表中找到对应的类调用的是哪个设置。

二、解决典型的几个地方maxInMemorySize的问题。

1、最期的springweb文件上传,可以直接在配置文件中:

multipart.max-in-memory-size=10MB 配置大小

2、如果使用表单提交报maxInMemorySize使用配置类来改参数:

@Configuration
public class DataBufferConfig implements WebFluxConfigurer {
    @Override
    public void configureHttpMessageCodecs(ServerCodecConfigurer configurer) {
           configurer.defaultCodecs().maxInMemorySize(10*1024*1024);
    }
}

3、如果webClient或SpringGateway上面转发修改webclient.builder设置:

private WebClient.Builder Builder (HttpClient httpClient) {

    ClientHttpConnector connector = new ReactorClientHttpConnector(httpClient);

    return WebClient.builder()
            .clientConnector(connector)
            .exchangeStrategies(ExchangeStrategies.builder()
                    .codecs(configurer -> {
                                CustomJsonDecoder decoder = new CustomJsonDecoder(ServerResponseFastJsonConfig.getObjectMapper());
                                configurer.defaultCodecs().jackson2JsonDecoder(decoder);
                                configurer.defaultCodecs().maxInMemorySize(MaxInMemorySize);
                                CustomJsonEncoder encoder = new CustomJsonEncoder(ServerResponseFastJsonConfig.getObjectMapper());
                                configurer.defaultCodecs().jackson2JsonEncoder(encoder);
                            }
                    )
                    .build()
            );
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值