- 2008-03-11 (Tue) 22:26
- 직장생활
Eclipsed와 maven을 연동해서 프로젝트를 빌드하고, WTP의 “J2EE Module Dependecies“에 “Maven Dependencies“를 체크해서 사용하는 경우, 빌드를 마치고 Apache Tomcat을 띄우는 순간 “ClassCastException“을 만나게 되는 경우가 있다.
이런 경우, pom.xml파일에 dependency로 servlet-api가 포함되어 있지 않은지 확인해 보자. 빌드를 위해서 servlet-api를 사용하는 경우 pom.xml파일을 다음과 같이 수정한다.
<!-- 수정전 --> <dependency> <groupid>javax.servlet</groupid> <artifactid>servlet-api</artifactid> <version>2.5</version> </dependency> <!-- 수정 후 --> <dependency> <groupid>javax.servlet</groupid> <artifactid>servlet-api</artifactid> <version>2.5</version> <scope>provided</scope> </dependency>
“수정 전”과 “수정 후”가 달라진 점은 scope를 지정했다는 점. scope를 provided로 지정하면 빌드시에 사용하게 되지만, 시스템에서 제공하는 라이브러리를 이용하게 된다. 따라서, apache tomcat등을 로딩할 때는 Maven Dependencies에 포함된 servlet-api가 충돌을 일으키지 않는다.
- Newer: @Override annotation과 J2SE 5.0
- Older: dwr과 varargs
코맨트:0
Trackbacks:0
- Trackback URL for this entry
- http://www.duppio.com/blog/615.html/trackback
- Listed below are links to weblogs that reference
- J2EE Module Dependencies 와 ClassCastException from duppio.com