java.lang.IllegalStateException: Failed to load ApplicationContext
Test 실행시 junit 에러
java.lang.IllegalStateException: Failed to load ApplicationContext
Failed to load ApplicationContext 에러가 나는데
---> 이 오류는 WEB-INF가 classpath에 포함되어 있지않아서 나는 오류
( 어플리케이션 컨텍스트가 테스트 컨텍스트에 로드되지 않아서 테스트창에 나타남)
@ContextConfiguration(locations = {"classpath:WEB-INF/application-context.xml"})
@ContextConfiguration 이 부분이 없어서 그런거라서
위 문구가 작성되어있는지 확인해보고 없으면 classpath를 잡아주기
*****혹시 위에 어노테이션이 잡혀있는데도 안될경우
pom.xml파일에가서 junit의 버전을 변경해주기
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
나같은 경우는
1. 에러 확인 및 방법
아래 콘솔창 보면 에러난 코드가 보임
java.lang.IllegalStateException: Failed to load ApplicationContext
그리고 junit 에러 창에는
junit4라고 적힌게 보임
2. 구글에 에러 검색 방법
그럼 구글에 에러 검색할때
Failed to load ApplicationContext 만 적어서 찾아도 되지만 안나오면
Failed to load ApplicationContext junit4 라고도 검색해서 찾아보기
3. 에러 문제 확인 및 해결 방법
에러를 확인해보니 @ContextConfiguration 어노테이션으로 classpath가 안잡혀서 그렇다는걸 발견함
그런데 나는 하단에 classpath가 잡혀있는걸 볼 수 있음
그런데도 에러가 나는 상황이면 다른부분의 문제라는걸 생각해봐야함
@ContextConfiguration(locations = {"file:src/main/webapp/WEB-INF/spring/*.xml"})
4. junit4 등 버전을 확인해보기
지금 오류의 문제는 @ContextConfiguration 어노테이션으로 classpath가 안잡혀 있어서 그렇다는데
나는 코드가 작성되어있는데도 에러가 난다면
내가 사용하고있는 junit4의 버전이 저 @어노테이션을 허용하지 않는다고 생각해볼 수 있음
나같은경우는 junit 4.7 버전으로 잡혀있는데 이 버전은 오류가남
하지만 4.13.2 버전으로 할때는 오류가 안남
--> 즉 저 어노테이션이 4.7에는 없는거라서 그러는 걸 수도있다고 추측해볼 수 있음
그럼 junit 버전 변경해보기 4.7 --->4.13.2
5. junit4 버전을 변경해도 오류가난다면
pom.xml파일에서 springframwork버전을 변경해보기
나는 현재 스프링프레임워크 버전을 3.1.1을 사용하고있는데
4.3.14버전을 사용하면 오류가 해결 됨
springframework버전 변경하기 3.1.1 --> 4.3.14
'development♥ > [Java, Spring]' 카테고리의 다른 글
[spring] @RequestMapping이란? (0) | 2022.10.11 |
---|---|
[spring] 스프링 프로젝트 폴더 구조 설명 (0) | 2022.10.03 |
MyBatis 마이바티스 및 설정방법 [Spring Java] (0) | 2022.10.02 |