본문 바로가기
Back-End (web)

[SpringBoot] use requestFactory in RestTemplateBuilder

by 햄과함께 2019. 1. 31.
320x100


@Configuration
public class Cofig {
 
    @Bean
    public RestTemplate restTemplate() {
        RestTemplateBuilder restTemplateBuilder = new RestTemplateBuilder();
        HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
        // ...
        return restTemplateBuilder.requestFactory(factory).build(); // error
    }    
 
}
cs


스프링 부트에서 사용하던 위와 같은 코드를 다른 프로젝트로 이전하는 과정에서 위와 같이 리턴하는 부분에서 에러가 발생했다.


 error: no suitable method found for requestFactory(HttpComponentsClientHttpRequestFactory)
cs

정확한 에러는 위와 같다.

적합한 requestFactory 함수를 찾을 수 없다고 한다.


검색해보니 스프링부트 2.x 부터 이 함수가 제거되었다고 한다.

그리고 ClientHttpRequestFactory 대신 Supplier<ClientHttpRequestFactory> 를 사용하는 함수를 제공해준다. 


return restTemplateBuilder.requestFactory(() -> factory).build();
cs


위와 같이 수정해서 해결했다.




참고

Deprecate+Remove ability to provide a custom ClientHttpRequestFactory instance in RestTemplateBuilder

requestFactory(Class<? extends ClientHttpRequestFactory>) in the type RestTemplateBuilder is not applicable

320x100

댓글