Programming/에러노트

[Spring Framework/스프링프레임워크] Constructor threw exception; nested exception is java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.ObjectMapper.registerModules(Ljava/lang/Iterable;)Lcom/fasterxml/jackson/databind/ObjectMapper;

개발도비 2022. 3. 10. 11:59

2022.1.7 작성

 

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter]: Constructor threw exception; nested exception is java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.ObjectMapper.registerModules(Ljava/lang/Iterable;)Lcom/fasterxml/jackson/databind/ObjectMapper;

 

검색해봐도 라이브러리 버전 업데이트하라는 소리밖에 없었는데 버전 업데이트는 이미 다 해서 몇 시간을 계속 헤맸다. 알고보니 빌드 경로 문제였음. 원래 빌드하면 target 폴더에 파일이 생성되어야 하는데 내가 경로 설정을 다르게 해놔서 out 폴더의 파일만 계속 업데이트되고 있는 거였다. 그래서 target 폴더에 있는 기존의 파일들과 충돌이 난 것 같음.

 

Project Structure(Command + ;) -> Project Settings -> Artifacts의 Output directory에서 내가 설정한 경로 확인이 가능하다. 여기서 지정한 경로때문에 내 경우엔 Build -> Build Artifacts...를 거쳐서 빌드해야 했음. 

 

요약하자면

1. 빌드 경로를 확인한다 

2. 타겟 폴더에 있는 기존 파일들 삭제한다

3. 경로에 맞춰서 새롭게 빌드한다