In my spring boot microservices, I am using OAuth2RestTemplate to make rest API call. Now, We have to add request time out in rest api call and for that I tried spring.mvc.async.request-timeout=20000 in application.properties file but did not work.
@Configuration
public class ResourceConfig {
@Bean
@LoadBalanced
@Qualifier("oauth2BalancedRestTemplate")
public OAuth2RestTemplate oauth2BalancedRestTemplate(@Qualifier("oauth2RestTemplate") OAuth2RestTemplate bean) {
OAuth2RestTemplate restTemplate = new OAuth2RestTemplate(bean.getResource());
restTemplate.setRequestFactory(bean.getRequestFactory());
return restTemplate;
}
@Bean
@LoadBalanced
@Qualifier("oauth2JWTBalancedRestTemplate")
public OAuth2RestTemplate oauth2JWTBalancedRestTemplate(@Qualifier("oauth2JWTRestTemplate") OAuth2RestTemplate bean) {
OAuth2RestTemplate restTemplate = new OAuth2RestTemplate(bean.getResource());
restTemplate.setRequestFactory(bean.getRequestFactory());
return restTemplate;
}
}
@Service
public class ApiCall {
@Value("${url}")
private String uri;
@Value("${endpoint}")
private String endpoint;
@Autowired
@Qualifier("oauth2JWTBalancedRestTemplate")
private OAuth2RestTemplate restTemplate;
public Response getTrdDetail(Request req) {
HttpHeaders headers = new HttpHeaders();
HttpEntity<Request> httpEntity = new HttpEntity<Request> (req, headers);
return restTemplate.exchange(uri + endpoint, HttpMethod.POST, httpEntity, Response.class);
}
}
Ensure these dependencies
Configure the HttpComponentsClientHttpRequestFactory bean and then inject it into your OAuth2RestTemplate bean: