본문 바로가기

Programming!

Spring boot 에서 RestTemplateBuilder 문제.

@Configuration

public class RestTemplateConfiguration {


    private MappingJackson2HttpMessageConverter customJackson2HttpMessageConverter() {

        .....

    }


    // 예제에 간혹 나오는 코드

    @Bean("restTemplate")

    public RestTemplate restTemplate(RestTemplateBuilder builder) {

        builder.additionalMessageConverters(Lists.newArrayList(customJackson2HttpMessageConverter(), new FormHttpMessageConverter()));

        return builder.build();

    }

}


위와 같은 예제코드가 간혹 나오는데.. 문제는 RestTemplateBuilder 에 messageConverters가 주입되지 않는다.


null오류도 없는거로 봐서는 무시되는 형태의 오류인듯 하다. 여튼 이경우에는 json의 array문제나 ignore처리든 customJackson2..의 설정이 하나도 안먹는 상태가 되어 버린다.


그냥 해결할 만한 방법을 생각해보니 restTemplate를 직접 생성해주는 방법과 RestTemplateBuilder를 따로 생성해주는 법 정도가 있을거 같다.

    @Bean("restTemplate")

    public RestTemplate restTemplate(RestTemplateBuilder builder) {

        return builder.build();

    }

    

    @Bean

    public RestTemplateBuilder restTemplateBuilder() {

      return new RestTemplateBuilder().additionalMessageConverters(Lists.newArrayList(customJackson2HttpMessageConverter(), new FormHttpMessageConverter()));

    }


더 이상 java.util.ArrayList out of START_OBJECT token어쩌고 저쩌고든 뭐든 오류는 나지 않는다.