Goals - tomcat:run
이클립스 내부 톰캣을 이용해 실행을 시킬 때 다음과 같은 내부 오류(HTTP Status 500)가 나타났습니다.
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/jasper/servlet/JasperLoader) previously initiated loading for a different type with name "javax/servlet/http/HttpServletRequest"
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:268)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
root cause
java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/jasper/servlet/JasperLoader) previously initiated loading for a different type with name "javax/servlet/http/HttpServletRequest"
servlet-api 가 이미 로딩이 되었다. 근데 또 로딩을 하는건 반칙이다. 이런건가...
<tomcat_home>/lib 에 하나, WEB-INF/lib 에 하나.
pom.xml 파일에서 scope의 기본값인 compile 을 런타임시에는 사용하지 않도록 provided 로 변경합니다.
<dependency>
<groupId>servletapi</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
<scope>provided</scope>
</dependency>
WRITTEN BY
- 손가락귀신
정신 못차리면, 벌 받는다.