[JAVA] org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class (미해결)
HTTP Status 500 – Internal Server Error
avax.servlet.ServletException: Servlet.init() for servlet [spring] threw exception
...
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/spring-servlet.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/spring-servlet.xml]
2024-11-25 08:21:39 ERROR [org.springframework.web.servlet.DispatcherServlet] Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: file [E:\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\프로젝트명\WEB-INF\classes\project\raspberry\common\controller\HomeController.class]; nested exception is org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet: file [E:\eclipse-workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\프로젝트명\WEB-INF\classes\project\raspberry\common\controller\HomeController.class]; nested exception is java.lang.IllegalArgumentException
at org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:290) ~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:242) ~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.parse(ComponentScanBeanDefinitionParser.java:84) ~[spring-context-3.2.3.RELEASE.jar:3.2.3.RELEASE]
at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73) ~[spring-beans-3.2.3.RELEASE.jar:3.2.3.RELEASE]
...
해결방법 1.
https://blog.naver.com/hang1416/30034103591
web.xml 에서 servelt-name과 servlet.xml파일 이름 확인
<servlet-mapping>
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
spring-servlet.xml → 이름 동일해서 문제 없음
해결방법 2.
https://how-can-i.tistory.com/2
파일이 있어도 읽기/쓰기 권한이 없을 때 발생
해결방법3.
https://october-east-sea.tistory.com/162
컴포넌트 스캔 수정
<context:annotation-config />
<!-- Controller 를 찾을 Base Package 명 -->
<context:component-scan base-package="project.raspberry" />
이미 저렇게 되어있다..
미치겠네..~~ 왜안되노