개발하고 있는 서버에 JUnit을 적용하고

Mock 클래스를 사용해서 MVC에 대한

테스트 환경을 구축하였더니

다음과 같은 에러가 발생하였다.

 

 

에러 콘솔 캡처

 

 

 

에러 로그

java.lang.NoClassDefFoundError: javax/servlet/SessionCookieConfig

…

Caused by: java.lang.ClassNotFoundException: javax.servlet.SessionCookieConfig
	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 32 more

 

 

에러만 해석해보자면

JSP를 사용하기 위해 필요한 패키지인 servlet 안에

SessionCookieConfig 클래스가 없어서 나는 에러이다.

 

이런 문제는 보통 버전에서 오는 경우가 많은 것 같아서 

찾아보니 역시 버전 호환성의 문제였다.

 

 

 

 

 

 

 

나는 현재 servlet-api 2.5버전을 사용하고 있었는데 

너무 옛버전이라서 불가능하다고 한다.

 

 

Junit 사용 불가 버전

 

 

 

MockHttpSession을 사용하기 위해서는

최소 3.1.0 버전을 사용해야 한다.

 

메이븐에서 검색해보니 

dependency 작성 규칙도 바뀌어 있었다

2.5 버전은 확실히 너무 옛 버전인 것 같다...

 

 

 

해결

 

<dependency>
	<groupId>javax.servlet</groupId>
	<artifactId>javax.servlet-api</artifactId>
	<version>3.1.0</version>
    <scope>provided</scope>
</dependency>

 

상위 버전으로 의존성만 변경하니 

문제없이 잘 작동한다.

 

 


 

 

 

 

포스팅이 도움이 되었다면

로그인이 필요 없는 공감 버튼 꾹 눌러주세요! 

 

 

 

 

+ Recent posts

"여기"를 클릭하면 광고 제거.