본문 바로가기
개발자의 공부방/에러 일기

[IntelliJ 서버 에러] org.springframework.web.context.support.XmlWebApplicationContext - Exception encountered during context initialization

by 쌈빡한 쥬니준 2019. 7. 31.
WARN : org.springframework.web.context.support.XmlWebApplicationContext 
- Exception encountered during context initialization
- cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'hikariConfig' defined in ServletContext resource [/WEB-INF/spring/root-context.xml]: 
Instantiation of bean failed;
nested exception is java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory

 

어제까지만해도 잘됐었는데 갑자기 톰캣을 재생하면 안됐습니다.

혹시나 JRebel 때문인가 싶었지만 그게 아닌... 이유는...

 

1. 원인

인텔리제이 pom.xml 에서 log4 의 jar를 새로운 버젼으로 만들었을 때 lib 폴더에 넣지 않고 중복된 것이 원인.

[잡설] pom.xml 에서 주입을 하게 됐을 때 인텔리제이는 jar 라이브러리를 위 사진의 오른쪽에 다운이 되게 되는데....

인텔리제이 스프링 초기 셋팅을 보게 되면 보통 Available Elements 에 담겨있는 라이브러리를 왼쪽 lib 폴더에 넣지 않는 것 같았다. 근데 또 다른 분들은 lib 폴더를 만들어서 넣기도 하고......일단 두 방법 다 되기는 한다. 하지만 경험상(?) lib 폴더를 만들어서 하는게 더 나은 것 같아 이 방법으로 사용하고 있다.

 

2. 해결

사진상으로는 안나오지만 왼쪽 lib 하위 폴더에 기존의 Maven: org.slf4j-api: 1.6.25 (Project Library) 가 있다 pom.xml 에서 Maven: org.slf4j-api: 1.7.25 (Project Library) 를 받게 되면 이 두 jar 가 충돌(?)이 일어나는 것 같다. 정확히 말하면 pom.xml 상에서는 버전을 1.7.25 로 표기해놨는데 정작 lib 에는 1.7.25 jar 가 없으니 에러가 뜨는 것 같다.

 

해결은 lib 하위 폴더에 전 버젼의 jar가 빨간색으로 표시가 되는데 빨간색으로 나와 있는 jar 를 Delete 하고 오른쪽 Available Elements 에 받아진 1.7.25 jar 을 왼쪽 lib 하위 폴더에 옮겨주면 된다.

 

댓글0