본문 바로가기
Spring/에러 정리

Failed to load driver class org.postgresql.Driver in either of HikariConfig class loader or Thread context classloader 에러

by Taler 2022. 10. 2.

잘 돌아가던 DB 설정이 갑자기 안돌아갔다. 기존의 잘돌아가던 코드에 변경을 준 것은 아니라는 점을 토대로 버전에 변경이 생겼나 살펴봤다.

 

우선 에러 전문:

Caused by: java.lang.RuntimeException: Failed to load driver class org.postgresql.Driver in either of HikariConfig class loader or Thread context classloader

 

간단히 요점을 말하자면 build 파일이 깨져서 발생한 문제였다. 근거는 build.gradle에 따로 버전을 명시하지 않았다는 점 (지원하지 않는 버전일 확률이 낮다.), rebuild를 수행한 이력이 없는 점(이 또한 갑자기 버전이 꼬일 리 없음을 의미한다)이 있었다.

 

이에 따라 gradlew.bat clean build를 수행하고 다시 rebuild해보려 했으나 동일한 에러가 떴다. 그래서 초강수로 그냥 프로젝트 폴더 내의 build 폴더를 삭제하고 rebuild

 

참고로 드라이버 오류가 발생했다면 다음과 같은 절차로 에러를 추적해보자.

 

1. 드라이버 의존성을 제대로 추가했는지?

프로젝트에서 사용중인 build.gradle

2. DataSource에 드라이버 세팅을 제대로 입력해줬는지?

프로젝트의 postgresql과 연결되는 datasource의 configuration 파일

3. 사용 중인 버전이 deprecated 되진 않았는지 (build를 다시 수행한 이력이 있는 경우)

4. build 파일을 삭제하고 다시 build를 진행하기

 

비단 postgresql driver 뿐만아니라 mariadb, mysql 등등의 다른 DB에서도 같은 문제가 발생할 수 있으니 위 추적 과정을 잘 기억해둬야겠다.

댓글