We Are Going To Discuss About DataBufferLimitException: Exceeded limit on max bytes to buffer webflux error. So lets Start this Java Article.
DataBufferLimitException: Exceeded limit on max bytes to buffer webflux error
- DataBufferLimitException: Exceeded limit on max bytes to buffer webflux error
I suppose this issue is about adding a new
spring.codec.max-in-memory-size
configuration property in Spring Boot. Add it to theapplication.yml
file like:spring: codec: max-in-memory-size: 10MB
- DataBufferLimitException: Exceeded limit on max bytes to buffer webflux error
I suppose this issue is about adding a new
spring.codec.max-in-memory-size
configuration property in Spring Boot. Add it to theapplication.yml
file like:spring: codec: max-in-memory-size: 10MB
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); } }
Original Author Of This Content
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
Original Author Of This Content
Solution 3
Set the maximum bytes (in megabytes) in your Spring Boot application.properties
configuration file like below:
spring.codec.max-in-memory-size=20MB
Original Author Of This Content
Solution 4
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;
@Configuration
public 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
Original Author Of This Content
Conclusion
So This is all About This Tutorial. Hope This Tutorial Helped You. Thank You.