복붙노트

[SPRING] 중첩 예외는 java.lang.IncompatibleClassChangeError : org / springframework / core / type / classreading / AnnotationMetadataReadingVisitor입니다.

SPRING

중첩 예외는 java.lang.IncompatibleClassChangeError : org / springframework / core / type / classreading / AnnotationMetadataReadingVisitor입니다.

나는 Spring을 처음 사용하기 때문에 JDK7에서 Eclipse로 성공적으로 실행되는 프로젝트를 얻어야한다. 프로젝트는 이전에 JDK6에서 실행되었습니다.

원래의 프로젝트에 속한 모든 소스 파일과 jar 파일을 가지고 있습니다. 하지만 그것을 실행하려고하면 다음과 같은 예외가 발생합니다.

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [C:\Users\e\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\DMControl\WEB-INF\classes\com\...\...\...\MyClass.class]; nested exception is java.lang.IncompatibleClassChangeError: org/springframework/core/type/classreading/AnnotationMetadataReadingVisitor

내가 가지고있는 유일한 단서는 내가 이것을 실행하려고 시도했을 때, 나는 오류가 발생했다.

org.springframework.core.io.support.SpringFactoriesLoader. 

내 봄 코어 3.1.2.RELEASE.jar을보고 실제로 SpringFactoriesLoader는 거기에 없었습니다. 현재 릴리스를 확인해 봄으로써 누락 된 클래스가 실제로 spring-core-3.2.2.RELEASE.jar에 있음을 알게되었습니다.

그래서 저는 봄용 항아리를 최신 버전으로 바꾸 었습니다. 그러나 이제 나는이 질문의 제목에서 예외를 얻는다.

어떤 생각?

전체 스택 추적 :

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [C:\Users\e\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\FTAdControl\WEB-INF\classes\com\fashiontraffic\adcontrol\health\restwebservices\HealthWSImpl.class]; nested exception is java.lang.IncompatibleClassChangeError: org/springframework/core/type/classreading/AnnotationMetadataReadingVisitor
at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:281)
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:242)
at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:84)
at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1438)
at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1428)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:185)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:139)
at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:108)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451)
at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:631)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:588)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:645)
at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:508)
at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:449)
at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:133)
at javax.servlet.GenericServlet.init(GenericServlet.java:242)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1190)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1103)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1010)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4957)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5284)
at org.apache.catalina.core.StandardContext$3.call(StandardContext.java:5279)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Caused by: java.lang.IncompatibleClassChangeError: org/springframework/core/type/classreading/AnnotationMetadataReadingVisitor
at org.springframework.core.type.classreading.SimpleMetadataReader.<init>(SimpleMetadataReader.java:63)
at org.springframework.core.type.classreading.SimpleMetadataReaderFactory.getMetadataReader(SimpleMetadataReaderFactory.java:80)
at org.springframework.core.type.classreading.CachingMetadataReaderFactory.getMetadataReader(CachingMetadataReaderFactory.java:102)
at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:257)
... 38 more

해결법

  1. ==============================

    1.@Eddy, classpath에 Spring 3.1과 3.2의 항아리가있는 것처럼 들리지만, 항상 나쁜 것은 아니지만 때로는 함께 잘 돌아 가지 않는다.

    @Eddy, classpath에 Spring 3.1과 3.2의 항아리가있는 것처럼 들리지만, 항상 나쁜 것은 아니지만 때로는 함께 잘 돌아 가지 않는다.

    Spring-webmvc 3.1.x를 가져온 spring-hateoas 0.4를 추가했을 때, 그리고 Spring 3.1 의존성이 모두있는 경우, Spring 3.2.2 프로젝트에서 같은 오류가 발생했습니다.

    나는 스프링 3.1 의존성을 배제하고 모든 것이 잘되었다. 희망이 도움이됩니다.

  2. ==============================

    2.이는 항아리 버전과 호환되지 않기 때문입니다. 이 블로그에서 자세한 내용을 확인할 수 있습니다.

    이는 항아리 버전과 호환되지 않기 때문입니다. 이 블로그에서 자세한 내용을 확인할 수 있습니다.

  3. ==============================

    3.

    <org.springframework-version>**4.2.1.RELEASE**</org.springframework-version> 
    

    pom.xml (특성 특성)에서 릴리스 버전을 최신 버전으로 변경하십시오.

    그런 다음 모든 스프링 프레임 종속성에서 해당 속성을 참조하십시오.

    이것은 나를 위해 일한 것이다 !!

  4. ==============================

    4.필자의 경우에는 이전 Spring 버전 (현재 Spring 4.2.4.RELEASE를 사용하고 있습니다)을 포함하고있는 activemq-all 라이브러리를 사용했기 때문에 문제가 발생했습니다. 그래서 activemq-core 라이브러리로 변경했고 문제가 해결되었습니다.

    필자의 경우에는 이전 Spring 버전 (현재 Spring 4.2.4.RELEASE를 사용하고 있습니다)을 포함하고있는 activemq-all 라이브러리를 사용했기 때문에 문제가 발생했습니다. 그래서 activemq-core 라이브러리로 변경했고 문제가 해결되었습니다.

  5. from https://stackoverflow.com/questions/15462718/nested-exception-is-java-lang-incompatibleclasschangeerror-org-springframework by cc-by-sa and MIT license