티스토리 뷰
728x90
Debug
RestTemplate 503 오류
이슈내용
기존 RestTemplate를 사용하던 부분에 503에러가 발생했다.
RestTemplate는 빈으로 등록되어 사용중이었는데 빈의 내용이 변경되었다.
변경 내용은 timeout이 없던 RestTemplate에 timeout을 설정
- 변경 전
@Bean public RestTemplate restTemplate() { return new RestTemplate(); }
- 변경 후
@Bean public RestTemplate restTemplate() { HttpComponentsClientHttpRequestFactory httpRequestFactory = new HttpComponentsClientHttpRequestFactory(); httpRequestFactory.setConnectionRequestTimeout(HTTP_REQUEST_TIMEOUT); httpRequestFactory.setConnectTimeout(HTTP_REQUEST_TIMEOUT); httpRequestFactory.setReadTimeout(HTTP_REQUEST_TIMEOUT); return new RestTemplate(httpRequestFactory); }
서버정보에 뒤에 포트정보를 포함하여 요청하고 있었다.
POST https://stdoc.remotemeeting.com:443/path
해당 RestTemplate를 사용하는 부분은 문제가 없는 운영서버와 동일한 코드이다. RestTemplate 빈만 변경되었다.
포스트맨등을 사용했을때 포트정보를 포함하면 증상가 동일한 503 에러가 발생한다.
해결
RestTemplate의 기본 생성자로 생성하게되면 SimpleClientHttpRequestFactory 구현체를 사용하게 된다.
- 이 구현체는 HttpUrlConnection을 이용한다.
빈 설정을 했던 HttpComponentClientHttpRequestFactory 구현는 Apache에서 제공하는 HttpClient를 사용한다.
따라서 기존 설정 (기본 생성자)에서 사용했던 SimpleClientHttpRequestFactory로 구현체를 변경하고 timout을 설정해주었다.
@Bean public RestTemplate restTemplate() { SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); factory.setConnectTimeout(HTTP_REQUEST_TIMEOUT); factory.setReadTimeout(HTTP_REQUEST_TIMEOUT); return new RestTemplate(factory); }
문제해결
728x90
'Debug' 카테고리의 다른 글
orphanRmoval 적용안됨 이슈 (0) | 2021.08.09 |
---|---|
JWT token - the token can't be used before ~ 오류 발생 (0) | 2020.12.30 |
@Scheduled 실행 시, Transaction처리 (0) | 2020.12.30 |
Spring에 commons-dbcp2 쓸 때, BasicDataSource 문제 (0) | 2020.12.30 |
인증 시, UsernameNotfoundException 발생 안함 문제(BadCredentials Exception만 발생) (0) | 2020.10.27 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday