inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

repository 위치

해결된 질문

303

sol

작성한 질문수 2

1

안녕하세요 :) 강사님

 

26강(JPA 이용하여 구현) 강의를 듣던 중 UserRepository 인터페이스 파일을

강사님과 동일하게 Domain -> User 와 같은 위치에 만들고 실행시켰더니

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2023-09-11 22:14:55.016 ERROR 58408 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userService': Resolution of declared constructors on bean Class [com.group.libraryapp.service.user.UserService] from ClassLoader [jdk.internal.loader.ClassLoaders$AppClassLoader@2437c6dc] failed; nested exception is java.lang.NoClassDefFoundError: com/group/libraryapp/repository/user/UserRepository
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.determineCandidateConstructors(AutowiredAnnotationBeanPostProcessor.java:309) ~[spring-beans-5.3.24.jar:5.3.24]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineConstructorsFromBeanPostProcessors(AbstractAutowireCapableBeanFactory.java:1302) ~[spring-beans-5.3.24.jar:5.3.24]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1219) ~[spring-beans-5.3.24.jar:5.3.24]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582) ~[spring-beans-5.3.24.jar:5.3.24]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.24.jar:5.3.24]

위와같은 에러가 나서 구글링과 이것저것 찾아보다가

repository 폴더 안으로 옮겼더니 정상적으로 실행이 되었습니다 :)

영상에서는 domain 클래스에 넣고 실행했을 때 정상적으로 작동이 되었는데

제 경로에서는 어떤 이유에서 에러가 발생했던건지, 정확한 답변을 찾을 수가 없어서 문의드립니다! :)

(+ bookRepository는 Book 도메인과 같이 넣어도 정상적으로 실행이 됩니다! )

java spring aws mysql spring-boot jpa

답변 1

0

최태현

안녕하세요, sol님! 질문 주셔서 감사드립니다~~ 😊

아하~~ 어떤 이유에서 에러가 나왔는지 궁금하셨군요!! 최대한 제가 알고 있는 내용을 전달 드려 보겠습니다~!!

 

 

먼저 보내주신 내용에서 파악할 수 있는 것은 NoClassDefFoundError: com/group/libraryapp/repository/user/UserRepository 라는 문구를 통해, 해당 에러는 UserRepository라는 클래스를 찾지 못해 발생했다는 것을 알 수 있습니다.

보통 에러의 stack trace 가 발생하면 아래로 갈 수록 근본 원인이 나오게 되는데요, 이 경우도

1차 에러 : Error creating bean with name 'userService'
-> UserService를 스프링 빈으로 생성하는 것에 실패!

2차 에러 : NoClassDefFoundError: com/group/libraryapp/repository/user/UserRepository
-> UserService에서 사용하는 UserRepository를 찾을 수 없어 실패!

순서로 아래 부분이 더 근본원인이라 할 수 있습니다.

 

그렇다면, "왜 UserRepository를 찾을 수 없다고 했는가" 가 중요한 쟁점일 될텐데요!

 

추측하기로는.. UserRepository를 domain 패키지로 옮기신 이후

  1. import 구문이 정상적으로 domain 패키지를 반영하지 않았거나

  2. 다시 실행 시킬 때는 이전에 빌드 했던 결과물과 현재 코드가 섞이면서 클래스 로딩에 혼선이 있었거나


정도의 이유를 생각해볼 수 있을 것 같습니다!

 

만약 재실행 이전에 깨끗한 상태로 스프링 서버를 동작시키고 싶으시다면,

image

IntelliJ 오른쪽 gradle 탭에서 clean을 사용해보실 수 있습니다!

궁금증이 해소되셨으면 좋겠습니다! 감사합니다. 🙏

1

sol

너무 쉽게 잘 설명해주셔서 감사합니다! :)

말씀해주신 답변 읽어보고 어떻게 오류 사항에 대해 생각해내야되는지도 대략적으로

감이 잡히는거 같아요!ㅎㅎㅎ 빠른 답변 감사드립니다!

패키지 구분에 대해 궁금한게 있습니다

0

25

2

리액트 관련 질문이 있습니다.

0

65

2

스프링부트 버전

0

76

2

7강 강의를 들으려고 했는데 오류가 나서 서버가 안 켜지는거 같아요.

0

59

2

33강. UserLoanHistory의 관계성에 대한 질문

1

56

2

Java JDK 버전 문의의 건

0

135

2

ec2 에서 Linux버전이 달라져서 설치가 안되는것 같은데 자료 최신화좀 해주세요.

0

90

3

h2 console 접속했을 테이블 질문

1

67

1

ec2 서버에서 스프링 실행도 되고 인바운드 설정까지 했는데 index.html 안됨

0

80

2

15강. updateUser() 질문

0

57

2

깃허브 질

0

84

2

여기까지 다 끝냈다고 하셨는데

0

79

2

왜안될까요

0

72

2

MySQL 창이안ㄴ뜹니다

0

59

2

포스트맨

0

52

1

spring 개념적인 질문

0

72

2

인텔리제이 샘플코드 실행 안됨 오류

0

142

2

aws 배포할때 .env 파일에 저장한 환경변수에 관하여 여쭤볼게 있습니다

0

87

1

마이그레이션 오류입니다.

0

175

3

Whitelabel Error Page 오류가 났습니다.

0

166

2

안녕하십니까! 오류가 났습니다.. 도와주세요 ㅜㅜ

1

94

3

궁금한게 있습니다.

0

61

2

DTO 관련

0

70

2

궁금한게 있습니다!

0

69

2