복붙노트

[SPRING] Spring Rest 템플릿에서 타임 아웃 설정하기

SPRING

Spring Rest 템플릿에서 타임 아웃 설정하기

응용 프로그램은 스프링 휴식 템플릿을 사용하여 webservice를 호출하고 사용하고 있습니다.     restTemplate.exchage (url)를 호출하여 웹 서비스를 호출합니다. 현재 우리는이 webservice 호출에 대한 시간 초과 값을 전달하지 않습니다. 어떻게 Spring Rest 템플릿에 대한 시간 초과 값을 설정할 수 있습니까?

해결법

  1. ==============================

    1.연결 시간 초과 설정을 위해 다음과 유사한 코드를 사용할 수 있습니다.

    연결 시간 초과 설정을 위해 다음과 유사한 코드를 사용할 수 있습니다.

    RestTemplate restTemplate = new RestTemplate();
    ((SimpleClientHttpRequestFactory)restTemplate.getRequestFactory()).setConnectTimeout(2000);
    

    읽기 시간 제한을 설정하려는 경우 다음과 유사한 코드를 사용할 수 있습니다.

    ((SimpleClientHttpRequestFactory)restTemplate.getRequestFactory()).setReadTimeout(2000);
    

    여기서 시간은 밀리 초 단위로 표시됩니다. 자세한 정보는 문서 페이지를 참조하십시오.

  2. ==============================

    2.이 스레드를 기반으로이 방법을 사용합니다.

    이 스레드를 기반으로이 방법을 사용합니다.

    int DEFAULT_TIMEOUT = 5000;
    RequestConfig requestConfig = RequestConfig.custom()
     .setConnectTimeout(DEFAULT_TIMEOUT)
     .setConnectionRequestTimeout(DEFAULT_TIMEOUT)
     .setSocketTimeout(DEFAULT_TIMEOUT)
     .build();
    

    CloseableHttpClient httpClient = HttpClients.custom ()      .setDefaultRequestConfig (requestConfig)      .짓다();

    Spring RestTemplate 연결 시간 초과가 작동하지 않습니다.

    Java : HttpClient 4.1.2 : ConnectionTimeout, SocketTimeout 값 설정이 효과적이지 않습니다.

  3. from https://stackoverflow.com/questions/32983328/setting-timeouts-in-spring-rest-template by cc-by-sa and MIT license