상황
- Spring4 버전으로 된 프로젝트를 Tomcat7에 배포하면 아래와 같은 에러가 발생함
- 원인은 tomcat7 에서는 tomcat 에 포함되어있는 library인 el-api.jar 버전이 낮아서 에러가 발생
Caused by: java.lang.NoClassDefFoundError: javax/el/ELManager
at org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator.buildExpressionFactory(ResourceBundleMessageInterpolator.java:88)
at org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator.<init>(ResourceBundleMessageInterpolator.java:47)
at org.hibernate.validator.internal.engine.ConfigurationImpl.getDefaultMessageInterpolator(ConfigurationImpl.java:474)
at org.springframework.validation.beanvalidation.LocalValidatorFactoryBean.afterPropertiesSet(LocalValidatorFactoryBean.java:271)
at org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean.afterPropertiesSet(OptionalValidatorFactoryBean.java:40)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1692)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1630)
... 58 common frames omitted
해결
- 해결책으로 제시되는 stackoverflow가 잘 되지 않는다.
- Tomcat 8이상에서 el-api.jar 파일만 복사해올 수도 있으나 다른 문제가 발생할지 확신이 없다.
- 가장 근본적인 해결책은 Tomcat7을 버리고 Tomcat8이상 설치 후 배포…