티스토리 뷰


-- 편의를 위해 말 좀 줄여서 쓰겠습니다. 양해해주시기 바랍니다. ('')(..)('')(..)

개발 중 jar 파일 변경 후 서버 재기동 시 아래와 같은 오류가 발생하였다.

심각: Exception sending context initialized event to listener instance of class customer.ApplicationStartupListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'CustomerService' defined in ServletContext resource [/WEB-INF/classes/{PROJECT_CLASS_PATH}.xml]: Instantiation of bean failed; nested exception is java.lang.UnsupportedClassVersionError: com/customer/CustomerController : ​Unsupported major.minor version 51.0 (unable to load class com/customer/CustomerController)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:883)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:839)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:283)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:880)
at customer.service.factory.SpringServiceFactory.initialize(SpringServiceFactory.java:25)
at customer.ApplicationStartupListener.initFactory(ApplicationStartupListener.java:78)
at customer.ApplicationStartupListener.contextInitialized(ApplicationStartupListener.java:37)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4236)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4739)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1061)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:822)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1061)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
at org.apache.catalina.core.StandardService.start(StandardService.java:525)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:759)
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
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/customer/CustomerController : Unsupported major.minor version 51.0 (unable to load class com/customer/CustomerController)
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 java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2398)
at java.lang.Class.getConstructor0(Class.java:2708)
at java.lang.Class.getDeclaredConstructor(Class.java:1987)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:54)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:877)
... 27 more

오류 내용을 검색해 보니 자바의 컴파일 버전이 달라서 생기는 에러라고 한다.


현재 개발 환경은 jdk 1.6 에 Tomcat 6

변경한 jar 파일을 컴파일 한 환경은 jdk 1.7

jdk 1.7 로 컴파일된 jar 파일을 Tomcat 6 에서 실행 시키려 하니 오류가 발생한 것 같다.

Tomcat 6 에서는 jdk 1.7 버전을 지원을 하지 않는 것이다.

해결방법은 아래와 같이 여러가지가 있다고 한다.

​1. 컴파일 버전을 1.6 으로 낮춰서 컴파일 후 다시 jar 배포.
2. Tomcat 7 을 사용한다
3. 해당 프로젝트 환경을 jdk 1.7 버전으로 맞춰준다
3-1. eclipse > Window > Preferences > Java > Installed JREs
3-2. Project > Java compiler > Compiler compliance level


이중에서 어떻게 처리해야 할까? 2번, 3번은 나뿐만이 아닌 프로젝트 전체의 환경을 바꾸어야 한다.
그렇다면 남은 것은 1번이다. 일개 프로젝트 일원인 나로서는 선택의 여지가 없었다.
jar 배포자에게 jdk 1.6 버전으로 컴파일 하여 재배포를 요청하였다.

살며시 얘기하자.

​jdk 1.6 버전으로 다시 컴파일해서 배포 부탁드립니다.

라고...

* 참고 : 아래는 버전 오류 숫자에 따른 jdk 의 컴파일 버전.
version 52.0 -> 1.8
version 51.0 -> 1.7
version 50.0 -> 1.6
version 49.0 -> 1.5
version 48.0 -> 1.4

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함