전자정부 표준프레임워크 개발환경에서 servlet-api가 배포되어 에러가 나는 경우

- 아래와 같은 에러가 난다.
심각: Exception starting filter springSecurityFilterChain
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSecurityFilterChain' is defined

심각: Error configuring application listener of class org.springframework.security.ui.session.HttpSessionEventPublisher
java.lang.ClassNotFoundException: org.springframework.security.ui.session.HttpSessionEventPublisher

심각: Exception Processing ErrorPage[exceptionType=java.lang.Throwable, location=/common/error.jsp]
org.apache.jasper.JasperException: /common/error.jsp(2,62) Unable to read TLD "META-INF/c.tld" from JAR file "file:/C:/egovfrm/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/testprj/WEB-INF/lib/jstl-1.2.jar": org.apache.jasper.JasperException: Failed to load or instantiate TagLibraryValidator class: org.apache.taglibs.standard.tlv.JstlCoreTLV

- 개발자들이 servlet-api-2.5.jar, jsp-api-2.0.jar가 배포되어서 나는 에러라고 한다.
전자정부 표준프레임워크 개발환경 2.5에서는 발생하지 않고, 2.0에서만 발생.
Server를 Clean하고, servlet-api-2.5.jar, jsp-api-2.0.jar[각주:1]를 제거하면 정상적으로 동작한다고 함.
매번 이래야 된다고.

- 먼저 Dependcy 설정을 의심.
provided로 되어 있음.

- 관련 글을 참고해서 해결
프로젝트의 Deployment Assembly에서 Maven Dependencies를 제거하고 war:inplace Goal(Run As - Maven build ...)을 실행시키면 된다.
(그래도 남아 있으면 Maven clean을 하던지[각주:2], WEB-INF/lib/*.jar를 모두 지우자)
Maven Dependencies에는 해당 라이브러리가 있지만 WEB-INF/lib/에는 없다.


  1. C:\egovfrm\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\testprj\WEB-INF\lib\ [본문으로]
  2. maven clean 플러그인에서 WEB-INF/classes/와 WEB-INF/lib/를 지우도록 설정되어 있다면 [본문으로]