본문 바로가기

TroubleShooting/Spring

[Spring] Caused by: java.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotationUtils.getAnnotation 에러 발생

728x90

 STS 에서 spring 템플릿 "Simple Spring Utility Project" 으로 프로그램 코드를 작성하고 빌드를 하면 다음과 같은 에러를 내는 경우가 있다.

Caused by: java.lang.NoSuchMethodError: org.springframework.core.annotation.AnnotationUtils.getAnnotation


 에러문 그대로 getAnnotation 이라는 메소드를 찾을 수 없다는 것인데, Spring 인데 왜 없는거지 하면서 다른데서 원인을 찾았었다. app-context.xml 에서 <tx:annotation-driven /> 부분을 주석으로 막으면 되지만, DB 트랜잭션 처리가 필요하기 때문에 그렇게 할 수 없었다.

그러다 "Maven Dependencies" 를 보니, spring-core-XXX,jar, spring-context-XXX.jar 의 버전이 3.0.X 대로 나온다. AnnotationUtils.getAnnotation 메소드는 Spring 3.1 부터 지원된다고 한다.

링크(http://stackoverflow.com/questions/9164001/spring-transaction-manager-annotation-style-runtime-error)


pom.xml 에서 spring.framework.version 을 3.2.3.RELEASE 로 바꾸니깐, spring-core, spring-context 도 3.2.3 으로 변경된다.  이 상태에서 빌드하면 문제없다.