[Tomcat 에러] Unsupported major.minor version 51.0
에러 원문
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.UnsupportedClassVersionError: com/netflix/hystrix/contrib/metrics/eventstream/HystrixMetricsStreamServlet : Unsupported major.minor version 51.0 (unable to load class com.netflix.hystrix.contrib.metrics.eventstream.HystrixMetricsStreamServlet)
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2858)
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:108)
at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:58)
at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:294)
at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1047)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:265)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4616)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1060)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:822)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1060)
at org.apache.catalina 오후 05:08
자바의 컴파일 버전이 달라서 나아나는 에러이다.
발생 CASE
ex) tomcat 6에서 jdk 1.7로 컴파일된 프로젝트를 실행시킬 때
ex) 자바1.7로 컴파일하고 자바1.6 버전이 깔린 PC에서 실행했을때
해결방법
1. jdk 컴파일 버전을 1.6으로 내린다. (추천하지 않음)
- 캐스팅문제 등 기타 문제로 오류가 날 수도 있다.
2. Tomcat7을 사용한다.
3. 이클립스의 자바 버전을 실행할 PC버전에 맞춘다.
- 해당 프로젝트의 속성에 들어간후, Java Compiler에서 PCP버전에 맞도록 Compiler compliance level를 설정하고 재빌드
4. PC에 이클립스와 동일한 자바를 설치하고 설정을 잡아 준다.
- 이클립스의 프로젝트 속성에서 빌드된 자바 버전을 확인후 PC에 설정하고 세팅 다시 해줌.
참고 뒤쪽 51.0 이라는 숫자는 에러가 나는 컴파일 버전(이클립스 버전) 이다.
version 51.0 ㅡ> 컴파일 버전 1.7
version 50.0 ㅡ> 컴파일 버전 1.6
version 49.0 ㅡ> 컴파일 버전 1.5
version 48.0 ㅡ> 컴파일 버전 1.4