cannot access javax.servlet.ServletException class file for javax.servlet.ServletException not found 오류

728x90

 

'코드로 배우는 스프링 웹 프로젝트'의 예제를 따라하던 중(xml이 아닌 자바로 설정하는 스프링프레임워크 예제) 테스트 코드를 작성한 뒤 실행하는 과정에서 아래와 같은 오류가 발생했다.

오류의 원인이  'java servlet api'가 없기 때문에 발생한 에러고 아래와 같은 의존성을 추가해주면 정상적으로 작동할 것이라고 했다.

maven

<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>4.0.1</version>
    <scope>provided</scope>
</dependency>

 

그랬더니 기존의 오류는 나타나지 않았고 새로운 오류가 나타났다. 

 

위 오류는 ApplicationContext를 제대로 로드하지 못했다는 걸로 봤을때, Test 클래스 설정을 잘못한게 아닌가라는 추측을 하였고, 예상대로 클래스 위에 어노테이션 설정이 다르다는 것을 알게되었다. (책의 예제에서 자바로 설정시에 @ContextConfiguration 맵핑을 어떻게 바꿔야 하는지에 대한 설명이 없었다) (내가 성급했다 뒷부분에 설명이 있었다. loader도 필요없다고 책에는 쓰여있다) 

(어떤 Config 클래스를 등록해야하는건지 몰라서 일단 두개 다 넣었었는데, RootConfig만 넣어도 된다. RootConfig는 root-context.xml을 대신하는 것이다) 

Log4j 어노테이션을 활성화 해도 Log가 안찍히는 오류가 있었는데 log4j.xml을 설정해주지 않아서 그렇다고 한다. (여기까지 오류를 해결해두고 급한 과제 부터해결해놓고 다음에 이 오류를 해결해보고자 한다) 

참고 : https://eternalteach.tistory.com/43

 

error: cannot access ServletException class file for javax.servlet.ServletException not found

java servlet api 추가하니 해결 gradle // https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api providedCompile group: 'javax.servlet', name: 'javax.servlet-api', version: '4.0.1' maven..

eternalteach.tistory.com

참고 : https://cnpnote.tistory.com/entry/SPRING-%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9C%A0%EB%8B%9B-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%A4%91%EC%97%90-ApplicationContext%EB%A5%BC%EB%A1%9C%EB%93%9C%ED%95%98%EC%A7%80-%EB%AA%BB%ED%96%88%EC%8A%B5%EB%8B%88%EB%8B%A4

 

[SPRING] 스프링 유닛 테스트 중에 ApplicationContext를로드하지 못했습니다.

스프링 유닛 테스트 중에 ApplicationContext를로드하지 못했습니다. 내 응용 프로그램 컨텍스트 스프링 자바 - 구성을 사용하여 Junit 기능 테스트를 실행하려고합니다. 나는 Spring이나 Junit에 문제가 있는지..

cnpnote.tistory.com

 

728x90