헤르메스 LIFE

[Spring Boot] Spring Resttemplate 예외 처리 본문

Spring Boot Framework

[Spring Boot] Spring Resttemplate 예외 처리

헤르메스의날개 2021. 1. 31. 16:16
728x90

 

LOCAL_SAVE_URL 에서 오류가 발생하면 4xx번, 5xx번대 오류가 넘어옵니다.

try {
  ResponseEntity<String> response = restTemplate.postForEntity( LOCAL_SAVE_URL, entity, String.class );

  logger.debug( "response :: {}", response );
  logger.debug( "result :: {}", response.getStatusCodeValue() );
  logger.debug( "result :: {}", response.getBody() );
  //logger.debug( "result :: {}", (List) response.getBody().get( "list" ) );
} catch ( HttpStatusCodeException e ) {
  String errorpayload = e.getResponseBodyAsString();
  logger.debug( "error :: {}", errorpayload );
}

org.springframework.web.client.HttpServerErrorException: 500 Internal Server Error
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:94) ~[spring-web-4.2.3.RELEASE.jar:4.2.3.RELEASE]

해결책으로 Try~catch 합니다.

 try {
	return restTemplate.exchange(url, httpMethod, httpEntity, String.class);
} catch(HttpStatusCodeException e) {
    return ResponseEntity.status(e.getRawStatusCode()).headers(e.getResponseHeaders())
                .body(e.getResponseBodyAsString());
}

출처 : cnpnote.tistory.com/entry/SPRING-Spring-Resttemplate-%EC%98%88%EC%99%B8-%EC%B2%98%EB%A6%AC

 

[SPRING] Spring Resttemplate 예외 처리

Spring Resttemplate 예외 처리 아래는 코드 스 니펫입니다. 기본적으로 오류 코드가 200이 아닌 다른 예외를 전파하려고합니다. ResponseEntity response = restTemplate.exchange(url.toString().replace("{vers..

cnpnote.tistory.com

 

728x90