본문 바로가기
Spring/문제해결

Spring boot, Tomcat 배포 시 springSecurityFilterChain 빈 생성 오류

by 모스키토끼 2020. 1. 29.

1. 오류 확인

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'springSecurityFilterChain' defined in class path resource [org/springframework/security/config/annotation/web/configuration/WebSecurityConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.servlet.Filter]: Factory method 'springSecurityFilterChain' threw exception; nested exception is java.lang.NoClassDefFoundError: javax/servlet/GenericFilter
  • AWS(Centos 환경)에서 Spring 서버를 Tomcat에 올리려고 했는데 springSecurityFilterChain bean 생성이 안된다는 오류 메시지가 떴다.
  • dependency 버전들을 바꿔봐도 해결이 안 됨
  • Security config 클래스에 @EnableWebSecurity를 추가해도 안 됨

2. 원인 파악

  • Spring Boot를 Tomcat에 올려 사용함
  • 내장 Tomcat을 사용하게 해주는 dependency(spring-boot-starter-tomcat) 부분 필요 없음
  • springFilter를 사용하면 이 부분에서 문제가 생김

3. 해결

  • spring-boot-starter-tomcat 의존성 삭제

//삭제
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>

 

댓글