에러 모음

ClassNotFoundException, FileNotFoundException, BeanDefinitionStoreException

junani0v0 2024. 4. 19. 17:45

< 에러 메시지 >

java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet

< 원인 >

spring-context와 spring-webmvc 라이브러리를 pom.xml에 추가하지 않아 발생

< 해결 >

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>5.3.34</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.34</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.3.34</version>
    </dependency>
</dependencies>

pom.xml에 라이브러리 추가 후 메이븐 업데이트

그러면 에러가 FileNotFoundException로 바뀜

 

< 에러 메시지 >

java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/pf-servlet.xml]

 

org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/pf-servlet.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/pf-servlet.xml]

 

< 원인 >

  <!-- Spring servlet start -->
	<servlet>
	    <servlet-name>pf</servlet-name>
	    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
	    <load-on-startup>1</load-on-startup>
	</servlet>
	
	<servlet-mapping>
	    <servlet-name>pf</servlet-name>
	    <url-pattern>*.do</url-pattern>
	</servlet-mapping>

web.xml에 추가한 이 코드로 인해 servlet이 있다고 판단하여 servelt을 찾음

web.xml에 우리가 pf를 정의해 놨는데 자동으로 -servlet을 붙여 pf-servlet.xml을 찾는데 아직 pf-servlet.xml을 만들지 않았기에 FileNotFoundException이 발생 

< 해결 >

 pf-servlet.xml 파일 생성으로 해결