REST API 통신시 WebClient Exceeded limit on max bytes

가오리·2023년 11월 21일
0

트러블 슈팅

목록 보기
10/16
post-thumbnail

REST API 통신시 WebClient Exceeded limit on max bytes

image

원인

  • WebClient에 설정되는 default codecbuffer size를 초과했을 때 발생했습니다.

해결 방법

  • buffer size의 크기를 설정해주었습니다.
@Configuration
public class WebClientConfig {
    private final ObjectMapper objectMapper;

    public WebClientConfig() {
        this.objectMapper = new ObjectMapper()
                .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false)
                .registerModule(new JavaTimeModule());
    }

    @Bean
    public WebClient webClient() {
        final int bufferSize = 16 * 1024 * 1024;  // 16MB
        final ExchangeStrategies exchangeStrategies = ExchangeStrategies.builder()
                .codecs(configurer -> {
                    configurer.defaultCodecs().jackson2JsonEncoder(new Jackson2JsonEncoder(objectMapper, MediaType.APPLICATION_JSON));
                    configurer.defaultCodecs().jackson2JsonDecoder(new Jackson2JsonDecoder(objectMapper, MediaType.APPLICATION_JSON));
                    configurer.defaultCodecs().maxInMemorySize(bufferSize);
                })
                .build();

        return WebClient.builder()
                .exchangeStrategies(exchangeStrategies)
                .build();
    }
}
profile
가오리의 개발 이야기

0개의 댓글