728x90
반응형
SMALL
이 주제에 대해서 적는 이유는 스프링에서 mybatis에서 작업을 하다가 에러가 나게 되어 ClassNotFoundException와 NoClassDefFoundError에 대해 비교하려 한다. 겉으로보면 autowired에서의 injection 실패로 인한 에러인듯 보여서 한참 헤매기도 했다.
그리고 스크롤바를 우단으로 쭉 넘겨보니 파란색 동그라미에 쳐진것처럼 "NoClassDeffoundError"라는 메시지가 뜨게 되었다. 처음에는 클래스가 없어서 그런거인줄 알았지만 잘못알게되어 잠깐 정리를 할까 한다.
ClassNotFoundException - 말 그대로 클래스가 존재하지 않아서 생기는 예외이다.
NoClassDeffoundError - 해당 클래스는 존재하지만, 그 클래스 안에 존재하는 다른 클래스가 존재하지 않아서 생기는 예외이다.
말로는 좀 이해가 안되는 거 같아 예제로 설명을 하겠다.
이 코드를 작성을 하고 bin에 존재하는 B.class를 지우고 실행을 하게 되었는데, 오른쪽과 같이 메시지가 뜨게 되었다. A라는 클래스는 존재하지만 B라는 클래스를 지우게 되어 예외가 발생하게 된 것이다.
즉 다시 돌아가자면 메인 클래스는 존재하지만 그 클래스 안에 존재하는 다른 클래스가 존재하지 않다는 결론을 내리게 되었다. 결국은 라이브러리가 설치가 제대로 되지 않았다는 생각을 하게 되었고, pom.xml에 라이브러리(spring-jdbc)를 추가하자마자 바로 해결 할 수 있게 되었다.
728x90
반응형
LIST
'Java' 카테고리의 다른 글
자바 11과 17 버전의 차이점 (0) | 2023.05.03 |
---|---|
가비지 컬렉션(Garbage Collection) 이해하기 (0) | 2023.05.02 |
JVM(Java Virtual Machine) 이해하기 - 동작 원리 및 구성 요소 (0) | 2023.04.30 |
Java는 Call by Value인가, Call by Reference인가? (0) | 2023.04.30 |
자바 소켓 프로그래밍 예제(채팅 프로그램) (1) | 2018.03.08 |