java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/jasper/servlet/JasperLoader)
JDK7 에서 JBOSS EAP 4.3 환경에서 전자정부 프레임웍을 테스트하는 과정에서 다음과 같은 에러가 발생하였다.
11:44:51,006 ERROR [ContainerBase] Servlet.service() for servlet action threw exception
java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/jasper/servlet/JasperLoader) previously initiated loading for a different type with name "javax/el/ExpressionFactory"
멘토인 구글링을 통해 아래 2개의 해결 방안을 찾았고, 해결했다.
해결방안 1. tomcat7은 jsp 2.2를 사용하므로 jsp-api pom에서 제거
http://stackoverflow.com/questions/3761249/loader-constraint-violation
해결방안 2. tomcat7은 jsp 2.2를 사용하므로 jsp-api 버전을 2.2로 변경.
http://stackoverflow.com/questions/8522329/tomcat-7-linkageerror-issue-on-el
본인은 2번째 해결방안을 사용하였다.
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2</version> <!-- JDK7 을 위해 2.2 로 변경 기존:2.1 -->
<scope>provided</scope>
</dependency>