인프런 커뮤니티 질문&답변

스스로 스터디님의 프로필 이미지
스스로 스터디

작성한 질문수

3. 웹개발 코스 [Enterprise Architecture(EA) X 전자정부프레임워크]

제5강 데이터베이스(MariaDB) + MyBatis 설정작업

오류 해결이 안됩니다ㅠ

작성

·

431

·

수정됨

1

 

아래오 ㅏ 같은 오류가 발생했는데, gpt는 example 폴더가 없다고 합니다.

이번 강의 후반부 25분 이후에 폴더들 삭제한 부분에서 문제가 발생한걸까요?

 

 

GPT답변

제공해주신 로그에 따르면 Spring 애플리케이션 컨텍스트 초기화 중에 문제가 발생하고 있습니다. 구체적으로, egovframework.example.cmmn.EgovSampleExcepHndlr 클래스에 대한 ClassNotFoundException이 발생하고 있습니다.

이 문제를 해결하기 위한 주요 사항과 단계를 아래에 설명합니다:

문제 원인 분석

  1. 클래스 미발견:

    • ClassNotFoundExceptionegovframework.example.cmmn.EgovSampleExcepHndlr 클래스가 클래스 경로에 존재하지 않음을 나타냅니다. 이는 의존성 문제일 수 있습니다.

  2. 의존성 확인:

    • EgovSampleExcepHndlr 클래스가 포함된 JAR 파일이 프로젝트 클래스 경로에 있는지 확인합니다.

    • Maven을 사용 중이라면 pom.xml, Gradle을 사용 중이라면 build.gradle 파일에서 모든 의존성이 올바르게 선언되었는지 확인합니다.

  3. 패키지 구조 확인:

    • 패키지 구조가 올바르고 Spring 설정 파일에 명시된 경로와 일치하는지 확인합니다.

    • 클래스 파일의 경로가 egovframework/example/cmmn/EgovSampleExcepHndlr.java인지 확인합니다.

  4. Spring 설정 파일 확인:

    • Spring 설정 파일(context-aspect.xml 등)에서 해당 빈 정의가 올바르게 되어 있는지 확인합니다.

    • 경로나 타입에 오타가 없는지 점검합니다.

  5. 클래스 컴파일 확인:

    • EgovSampleExcepHndlr 클래스가 올바르게 컴파일되어 WEB-INF/classes 디렉토리나 관련 JAR 파일에 있는지 확인합니다.

  6. 프로젝트 재빌드:

    • 프로젝트를 클린하고 재빌드하여 클래스 경로 문제를 해결합니다.

    • Eclipse나 IntelliJ IDEA와 같은 IDE에서 "Clean" 및 "Rebuild" 옵션을 사용합니다.

  7. 배포 문제 확인:

    • 서버가 애플리케이션을 올바르게 배포하고 있는지 확인합니다. 배포를 제거하고 다시 배포하면 문제가 해결될 수 있습니다.

문제 해결 단계

  1. 클래스 경로 확인:

    • egovframework.example.cmmn.EgovSampleExcepHndlr 클래스가 빌드 출력 디렉토리(WEB-INF/classes 또는 JAR 파일)에 있는지 확인합니다.

  2. 의존성 업데이트:

    • Maven을 사용 중이면 mvn clean install을 실행하여 프로젝트를 재빌드하고 모든 의존성을 올바르게 다운로드 받습니다.

    • Gradle을 사용 중이면 gradle clean build를 실행합니다.

  3. Spring 설정 파일 검토:

    • context-aspect.xml 파일을 열고 egovHandler 빈 정의가 올바른지 확인합니다.

    xml

    코드 복사

    <bean id="egovHandler" class="egovframework.example.cmmn.EgovSampleExcepHndlr" />

  4. 클린 및 재빌드:

    • Eclipse: Project > Clean 그리고 Project > Build Project를 실행합니다.

    • IntelliJ: Build > Rebuild Project를 실행합니다.

  5. 서버 재시작:

    • 변경 사항을 반영하기 위해 서버(예: Tomcat)를 제대로 재시작합니다.

이 단계를 따라가면 ClassNotFoundException 문제를 해결하고 Spring 애플리케이션 컨텍스트를 성공적으로 초기화할 수 있을 것입니다. 문제가 계속될 경우, 프로젝트 설정 및 의존성에 대한 추가 조사가 필요할 수 있습니다.

 

Caused by: java.lang.ClassNotFoundException: egovframework.example.cmmn.EgovSampleExcepHndlr
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1308)
	at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1120)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:398)
	at org.springframework.util.ClassUtils.forName(ClassUtils.java:284)
	at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:469)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1607)
	at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1534)
	... 65 more

6월 03, 2024 9:59:36 오후 org.apache.catalina.core.StandardContext startInternal
SEVERE: 하나 이상의 리스너들이 시작하지 못했습니다. 상세 내역은 적절한 컨테이너 로그 파일에서 찾을 수 있습니다.
6월 03, 2024 9:59:36 오후 org.apache.catalina.core.StandardContext startInternal
SEVERE: 이전 오류들로 인해 컨텍스트 [/Egov_WEB]의 시작이 실패했습니다.
6월 03, 2024 9:59:36 오후 org.apache.catalina.core.ApplicationContext log
INFO: Closing Spring root WebApplicationContext
6월 03, 2024 9:59:36 오후 org.apache.coyote.AbstractProtocol start
INFO: 프로토콜 핸들러 ["http-nio-8080"]을(를) 시작합니다.
6월 03, 2024 9:59:36 오후 org.apache.catalina.startup.Catalina start
INFO: 서버가 [14048] 밀리초 내에 시작되었습니다.

답변 2

0

개발자Park님의 프로필 이미지
개발자Park
지식공유자

안녕하세요.개발자park입니다.

확인을 해보았으나 코드상에는 문제가 없어보입니다.

http://localhost:8082/Egov_WEB/main2.do

로 요청시 제대로 동작합니다.

아래와 같이 시도해주세요. 톰켓에서 사용될 실행 파일이 갱신이 안된 것으로 보입니다.

1.톰캣의 임시 실행파일을 제거해줍니다.

2.인터넷이 연결된상태에서 라이브러리를 강제로 업데이트 시켜줍니다.

  

OK클릭

image

3.다시 빌드해서 실행파일을 생성해줍니다.

감사합니다.


감사합니다!

해결방법 알려주셔서 덕분에 해결하였습니다!

0

개발자Park님의 프로필 이미지
개발자Park
지식공유자

안녕하세요. 개발자park입니다.

로그상에 나오듯이 아래 클래스를 못 찾고 있습니다.

패키지:egovframework.example.cmmn

클래스:EgovSampleExcepHndlr

해당 기본 파일을 삭제하신 것으로 보입니다.

해당 패키지 제거방법은 이후에 다룹니다.

 

말씀하신 5강에서의 폴더 삭제는

29:32부터 위치를 변경해주기에 문제가 되지 않습니다.

혼자 해결이 어려우시면 fallingsstar@naver.com로 프로젝트파일을 보내주시면 문제점을 찾아보겠습니다.

감사합니다.

스스로 스터디님의 프로필 이미지
스스로 스터디

작성한 질문수

질문하기