etc/error
org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.index_jsp
CofS
2019. 5. 27. 14:21
오래된, 혹은 이전에 개발된 프로젝트를 오랜만에 구동시키면 다음과 같은 오류를 만날 수 있다.
org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.index_jsp org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:177) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) root cause
java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.index_jsp java.net.URLClassLoader.findClass(URLClassLoader.java:382) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:132) org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:63) org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:172) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
|
찾아보니 여러 경우가 있었다.
먼저 jsp 가 제대로 컴파일 되지 않았을 경우 발생할 수 있다고 한다.
이럴 경우에는 단순히 clean 또는 tomcat 아래의 빌드된 파일들을 삭제해주면 쉽게 해결된다고 한다.
그런데 컴파일이 제대로 되지 않는 경우는 일시적일 수 있지만 때론 jar파일의 중복, 충돌, dependency 버전이 맞지 않는 등 다양한 경우에 발생할 수 있다고 하니 이 부분도 같이 체크하면 쉽게 해결할 수 있다.
하지만 필자와는 상관없는 경우였다.
위의 방법이 통하지 않아서 계속 해매다보니 java와 tomcat 버전이 이전에 개발된 버전과 다르다는것을 알았다.
정확히는 알 수 없었지만 버전을 맞춰주면 되지 않을까? 하는 생각이 강하게 들었다.
그래서 일단 기존에 실행되었던 대로 java와 tomcat 버전을 맞춰주니 더이상 오류가 발생하지 않았다.
이건 걍 뇌피셜인데 java와 tomcat 의 버전을 달리하니 이와 관련되어있던 라이브러리중에서 dependency 가 맞지 않는게 존재했을 것이고 그래서 위와 같은 오류가 발생한 것이 아닌가 싶다.