본문 바로가기

오류 노트

[SpringBoot 오류] Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication at com.example.thymeleaf.ThymeleafApplication.main(ThymeleafApplication.java:13)Caused by: java.lang.ClassNotFoundException:

반응형

오류 내용

Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication
at co m.example.thymeleaf.ThymeleafApplication.main(ThymeleafApplication.java:13) 
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 1 more


Spring boot를 연습하고 있다. 어제는 실행이 잘 됐는데 오늘은 안 된다. 건드린 부분은 따로 없다. 무엇이 조작됐는지 모르겠다. 뭔가 인식을 못하고 있는듯하다. @Controller 어노테이션 인식이 안 된다. @RequestMapping도 인식이 안 된다. 껐다가 키니까 작동이 된다? 이상하다. 이제는 다른 오류가 발생했다. 

 

***************************
APPLICATION FAILED TO START
***************************

Description:

Web application could not be started as there was no org.springframework.boot.web.servlet.server.ServletWebServerFactory bean defined in the context.

Action:

Check your application's dependencies for a supported servlet web server.
Check the configured web application type.

Process finished with exit code 0

 

오류 원인 :  @SpringBootApplication 

package com.example.thymeleaf;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@SpringBootApplication
public class ThymeleafApplication {

	public static void main(String[] args) {
		SpringApplication.run(ThymeleafApplication.class, args);
	}

	@GetMapping("/temp")
	public String hello(){ return "Hello Layout!";}
}

@SpringBootApplication를 빼 먹었다. 

 

컴포넌트 스캔 설정: 스프링 부트가 웹 애플리케이션을 올바르게 인식할 수 있도록 컴포넌트 스캔 설정이 필요하다.  @SpringBootApplication 어노테이션이 포함된 클래스가 웹 애플리케이션과 관련된 패키지 또는 상위 패키지에 위치해 있는지 확인해야한다. 

 

@SpringBootApplication 어노테이션은 스프링 부트 애플리케이션의 핵심 어노테이션으로, 여러 가지 설정을 자동으로 처리해주는 역할을 한다. 이 어노테이션을 사용하지 않으면 스프링 부트가 웹 애플리케이션으로 인식하지 않고 필요한 설정들을 제대로 처리하지 못한다.

 

 

반응형