공공 데이터 포털을 통하여 xml 파일을 읽어 오려고 restTemplate을 사용하다가 발생한 문제이다.
restTemplate.exchange()
를 사용하려고 하였는데 파라미터로 Url,HttpMethod.Get, HttpEntity, Response(내가 결과값을 받을 Class)를 주었더니 아래와 같은 Error가 발생하였다.
이에 restTemplate.exchange()
를 타고 들어가 인터페이스 설명 문서를 보았는데 내가 사용하려고 했던 메서드를 확인하였다.
이를 통해 보니 처음엔 내가 Entity나 ResponseType을 잘못 준 줄 알았는데, Url 파라미터를 잘못 준 것이라는 걸 깨달았다.
이후 코드를 아래와 같이 고치고 나니 정상 작동 되었다.
URI uri = URI.create(url.toString());
restTemplate.exchange(uri, HttpMethod.GET, entity, WoojinResponse.class);
이번 실수로 restTemplate.exchange()
는 Url 타입을 String 혹은 Uri 타입으로만 받는 것을 깨닫게 되었다.