DataBufferLimitException: Exceeded limit on max bytes to buffer webflux error
Solution 1:
This worked for me:
-
Create a
@Bean
in one of your configuration classes or the mainSpringBootApplication
class:@Bean public WebClient webClient() { final int size = 16 * 1024 * 1024; final ExchangeStrategies strategies = ExchangeStrategies.builder() .codecs(codecs -> codecs.defaultCodecs().maxInMemorySize(size)) .build(); return WebClient.builder() .exchangeStrategies(strategies) .build(); }
-
Next, go to your desired class where you want to use the
WebClient
:@Service public class TestService { @Autowired private WebClient webClient; public void test() { String out = webClient .get() .uri("/my/api/endpoint") .retrieve() .bodyToMono(String.class) .block(); System.out.println(out); } }
Solution 2:
I suppose this issue is about adding a new spring.codec.max-in-memory-size
configuration property in Spring Boot. Add it to the application.yml
file like:
spring:
codec:
max-in-memory-size: 10MB