servlet-api with Maven

Daily/Prog 2013. 5. 22. 22:45

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
손가락귀신
정신 못차리면, 벌 받는다.

트랙백  0 , 댓글  0개가 달렸습니다.
secret