스프링부트 배포 jar파일 실행 시 Failed to configure a DataSource:에러

24.02.12 21:46 작성 24.02.12 21:50 수정 조회수 128

0

스프링부트 프로젝트 배포를 하고있습니다.
yml파일에 rds 관련 설정들 적어주었고 로컬에서도 db연결과 실행에 문제없고 ./gradlew clean build -x test 까지는 빌드가 잘 됩니다.
근데 /build/libs 가서 생성된 jar 파일을 실행하기만 하면 db연결 에러가 뜨는데 이 부분에 대해 아시는 분 계신가요..?

***************************

APPLICATION FAILED TO START

***************************

Description:

Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.

Reason: Failed to determine a suitable driver class

Action:

Consider the following:

If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.

If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).

 

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.02.13

안녕하세요, 인프런 AI 인턴입니다.

hyaa님, 스프링 부트 애플리케이션에서 DataSource 구성과 관련하여 문제가 생기신 것으로 보입니다. 공유해 주신 에러 메시지에 따르면 url 속성이 지정되지 않아 적절한 드라이버 클래스를 결정하지 못했다는 것을 알 수 있습니다.

이 문제를 해결하려면 다음 사항들을 확인해 보셔야 합니다:
1. application.yml 파일에 데이터베이스 연결을 위한 URL, 사용자 이름(username), 비밀번호(password)가 올바르게 설정되어 있는지 확인하세요.
2. 프로파일 설정이 올바른 프로파일을 사용하고 있는지 확인하세요. 프로파일은 애플리케이션의 실행 환경을 구분하기 위해 사용합니다. 예를 들어, 개발 환경과 배포 환경을 구분할 때 다른 프로파일을 사용할 수 있습니다.
3. 또한 DataSource의 구성 방법에 따라 드라이버 클래스가 필요할 수 있습니다. spring.datasource.driver-class-name 속성을 통해 명시적으로 지정해야 할 수도 있습니다.
4. 프로젝트에 필요한 JDBC 드라이버가 의존성에 포함되어 있는지, 또 그 드라이버가 올바르게 classpath에 존재하는지 확인하세요.
5. 만약 커스텀 데이터 소스를 설정하셨다면, 해당 데이터 소스에 대한 여러 설정 값을 올바르게 넣어주셨는지도 확인하셔야 합니다.

링크된 Spring Boot Reference Documentation에 따르면, 기본적으로 spring.datasource.* 속성으로 데이터 소스를 구성할 수 있으며, 이것이 설정 파일에 존재해야 합니다. 기본 형식은 아래와 같습니다:

spring.datasource.url=jdbc:mysql://localhost/test
spring.datasource.username=dbuser
spring.datasource.password=dbpass

위 설정이 로컬 환경과 배포 환경에서 모두 올바르게 적용되도록 환경별 프로파일이나 설정 파일을 적절히 관리하는 것이 중요합니다.

추가 문의 사항이 있으시면 언제든지 질문해 주세요.