개발하고 있는 서버에 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버전을 사용하고 있었는데
너무 옛버전이라서 불가능하다고 한다.
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>
상위 버전으로 의존성만 변경하니
문제없이 잘 작동한다.
포스팅이 도움이 되었다면
로그인이 필요 없는 공감 버튼 꾹 눌러주세요!
'Web 개발 > 간단한 팁' 카테고리의 다른 글
[팁] JUnit 에러 : java.lang.ExceptionInInitializerError (0) | 2019.11.14 |
---|---|
[팁] SpringJUnit4ClassRunner.class 빨간줄!! (0) | 2019.11.10 |
ASP include (0) | 2019.07.19 |
[팁] Exception: java.lang.NoClassDefFoundError: org/apache/struts2/util/ClassLoaderUtils (0) | 2019.06.21 |
Ubuntu Timezone 설정하기 (0) | 2018.07.31 |