DataBufferLimitException: Exceeded limit on max bytes to buffer webflux error
This workerd for me
Create a bean in your one of the configuration class or the main Springbootapplication class
@Beanpublic WebClient getWebClientBuilder(){ return WebClient.builder().exchangeStrategies(ExchangeStrategies.builder() .codecs(configurer -> configurer .defaultCodecs() .maxInMemorySize(16 * 1024 * 1024)) .build()) .build();}
Next go to your desired class where you want to use the webclient
@RestController / @Bean/ @Service public class PaySharpGatewayController { @Autowired WebClient webClient; public void test(){ String out = webClient .get() .uri("end point of an API") .retrieve() .bodyToMono(String.class) .block(); sysout(out) }
I suppose this issue is about adding a new spring.codec.max-in-memory-size configuration property in Spring Boot. Add it to the properties like:
spring: codec: max-in-memory-size: 10MB
i was getting this error for a simple RestController (i post a large json string).
here is how i successfully changed the maxInMemorySize
import org.springframework.context.annotation.Configuration;import org.springframework.http.codec.ServerCodecConfigurer;import org.springframework.web.reactive.config.ResourceHandlerRegistry;import org.springframework.web.reactive.config.WebFluxConfigurer;@Configurationpublic class WebfluxConfig implements WebFluxConfigurer { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/swagger-ui.html**") .addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**") .addResourceLocations("classpath:/META-INF/resources/webjars/"); } @Override public void configureHttpMessageCodecs(ServerCodecConfigurer configurer) { configurer.defaultCodecs().maxInMemorySize(16 * 1024 * 1024); }}
this was surprisingly hard to find