gony-dev 님의 블로그

[RDS] Failed to determine a suitable driver class 본문

TroubleShooting

[RDS] Failed to determine a suitable driver class

minarinamu 2024. 12. 23. 15:54

구름x카카오 부트캠프 프로젝트를 진행하던 도중, 의존성 주입을 하고 실행 테스트를 해보는 과정에서
난데 없는 오류가 발생하여 삽질을 하였기에 이를 기록해보겠다.

 

다음은 account-service 모듈 실행 오류이다.

📌 Trouble

  • "Failed to determine a suitable driver class"라는 말과 함께 오류가 발생하였다.
  • 내용을 보면 알겠지만 import하는 데이터베이스의 url을 표시하라는 문구이다.
    하지만 나는 mongoDB를 사용하기 때문에 이에 관한 설정은 해놓은 상태이다. 그럼에도 오류가 발생하는 이유가 뭘까?
    하나씩 살펴보도록 하자.

먼저 account-service에 대한 설정은 다음과 같다.

build.gradle

application.yml

위의 application.yml은 Config 서버에 담겨있는 내용들로 연동은 잘 되는 것으로 확인을 했다.

사실 이미 2개의 캡쳐본 안에 오류가 담겨있다.


📌 Shooting

사실 url에 대한 오류보다는 그 밑에 있는 오류를 눈여겨 보아야한다.

"Failed to determine a suitable driver class"

  • 위 내용은 적절한 드라이버를 적용하지 못했다는 오류로 JPA dependency가 추가된 상태에서 mongoDB dependency까지 추가되어 데이터베이스 충돌이 발생한 것이었다.
  • 정확히 말하자면 두 개의 데이터 소스를 사용할 수 있지만 이에 대한 설정이 잘못되어 충돌이 발생한 것이었다.

해결 방안

두 가지 경우에 따라 달리 해결할 수 있다.

1. 두 개의 드라이버를 사용하기

2. mongoDB를 사용하기

사실 이 두 가지 모두 해결방안은 같기에 1번의 경우를 이행해보겠다.

말 그대로 두 데이터베이스의 드라이버를 설정해주면 된다. 그렇게 되면 application.yml은 다음과 같이 설정된다.

 

application.yml

# jpa 설정
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/db
    driver-class-name: com.mysql.cj.jdbc.Driver
  data:
    mongodb:
      uri: mongodb://localhost:27017/db

만일 jpa datasource에 대한 설정이 필요없다면

# jpa 설정
spring:
  datasource:
    initialize: false
  data:
    mongodb:
      uri: mongodb://localhost:27017/db

"initialize"를 통해 설정하지 않겠다는 구문을 명시해야만 한다.

'TroubleShooting' 카테고리의 다른 글

[Trouble Shooting] Restricted Identifier  (0) 2024.12.04
[Spring] Page Interface의 직렬화  (2) 2024.11.14