인프런 커뮤니티 질문&답변

wo12lf24님의 프로필 이미지

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

Hello 서블릿

localhost:8080/hello 창이 열리지 않습니다.

작성

·

324

0

 

. ____ _

/\\ / ___'_ __ (_)_ _ \ \ \ \

( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \

\\/ ___)| |_)| | | | | || (_| | ) ) ) )

' |____| .__|_| |_|_| |_\__, | / / / /

=========|_|==============|___/=/_/_/_/

:: Spring Boot :: (v3.2.5)

2024-05-21T15:07:05.718+09:00 INFO 7852 --- [servlet] [ main] hello.servlet.ServletApplication : Starting ServletApplication using Java 21.0.3 with PID 7852 (C:\Study\servlet\servlet\out\production\classes started by wo12l in C:\Study\servlet\servlet)

2024-05-21T15:07:05.725+09:00 INFO 7852 --- [servlet] [ main] hello.servlet.ServletApplication : No active profile set, falling back to 1 default profile: "default"

2024-05-21T15:07:07.089+09:00 WARN 7852 --- [servlet] [ main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Instantiation of supplied bean failed

2024-05-21T15:07:07.110+09:00 INFO 7852 --- [servlet] [ main] .s.b.a.l.ConditionEvaluationReportLogger :

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.

2024-05-21T15:07:07.176+09:00 ERROR 7852 --- [servlet] [ main] o.s.boot.SpringApplication : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Instantiation of supplied bean failed

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1223) ~[spring-beans-6.1.6.jar:6.1.6]

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1161) ~[spring-beans-6.1.6.jar:6.1.6]

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) ~[spring-beans-6.1.6.jar:6.1.6]

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.6.jar:6.1.6]

at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[spring-beans-6.1.6.jar:6.1.6]

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.6.jar:6.1.6]

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[spring-beans-6.1.6.jar:6.1.6]

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205) ~[spring-beans-6.1.6.jar:6.1.6]

at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:202) ~[spring-context-6.1.6.jar:6.1.6]

at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:788) ~[spring-context-6.1.6.jar:6.1.6]

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:606) ~[spring-context-6.1.6.jar:6.1.6]

at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.5.jar:3.2.5]

at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.5.jar:3.2.5]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.5.jar:3.2.5]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.5.jar:3.2.5]

at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.5.jar:3.2.5]

at hello.servlet.ServletApplication.main(ServletApplication.java:12) ~[classes/:na]

Caused by: java.lang.NoClassDefFoundError: jakarta/servlet/annotation/WebServlet

at org.springframework.boot.web.servlet.WebServletHandler.<init>(WebServletHandler.java:39) ~[spring-boot-3.2.5.jar:3.2.5]

at org.springframework.boot.web.servlet.ServletComponentRegisteringPostProcessor.<clinit>(ServletComponentRegisteringPostProcessor.java:62) ~[spring-boot-3.2.5.jar:3.2.5]

at org.springframework.boot.web.servlet.ServletComponentScanRegistrar$ServletComponentRegisteringPostProcessorBeanDefinition.lambda$getInstanceSupplier$0(ServletComponentScanRegistrar.java:94) ~[spring-boot-3.2.5.jar:3.2.5]

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainInstanceFromSupplier(AbstractAutowireCapableBeanFactory.java:1257) ~[spring-beans-6.1.6.jar:6.1.6]

at org.springframework.beans.factory.support.DefaultListableBeanFactory.obtainInstanceFromSupplier(DefaultListableBeanFactory.java:951) ~[spring-beans-6.1.6.jar:6.1.6]

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1217) ~[spring-beans-6.1.6.jar:6.1.6]

... 16 common frames omitted

Caused by: java.lang.ClassNotFoundException: jakarta.servlet.annotation.WebServlet

at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]

at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]

at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[na:na]

... 22 common frames omitted

Process finished with exit code 1

코드를 4:32초까지의 강의 내용을 따라적었는데 위 내용과 같이 뜨면서 종료가 됩니다. 해결방법알려주시면 감사하겠습니다.

답변 3

3

wo12lf24님의 프로필 이미지
wo12lf24
질문자

Build Tools의 Gradle에서 Intellij IDEA에서 Gradle로 바꾸니 해결되었습니다.

0

안녕하세요. wo12lf24님, 공식 서포터즈 y2gcoder입니다.

스스로 잘 해결하셨습니다 :) 

강의 수강 중 강의 관련 궁금한 사항은 언제든 질문 남겨주세요^^

0

안녕하세요, 인프런 AI 인턴입니다.

wo12lf24님께서 겪고 계신 문제는 Spring Boot 애플리케이션에서 javax.servlet.annotation.WebServlet 클래스를 찾을 수 없어 발생하는 오류로 보입니다. 특히, 오류 메시지 중 java.lang.NoClassDefFoundError: jakarta.servlet.annotation.WebServlet와 관련해서는, Spring Boot의 버전과 사용하고 계신 Java EE 라이브러리 간의 호환 문제일 가능성이 높습니다.

이러한 문제는 주로 spring-boot-starter-web 의존성과 관련된 설정이나 Java EE -> Jakarta EE로의 전환 과정에서 발생할 수 있습니다. 최신 버전의 Spring Boot에서는 Jakarta EE를 사용하기 때문에, 이전의 javax.* 패키지 대신 jakarta.* 패키지를 사용해야 합니다.

해당 문제와 매우 유사한 경우에 대한 해결 방안을 제시하는 질문과 답변을 찾았습니다. 아래 링크를 참고하시면 도움이 될 것 같습니다:

  • 서버 실행 오류 - 이 질문에서는 java.lang.NoClassDefFoundError: javax/servlet/annotation/WebServlet 관련 문제를 다루고 있으며, 설명에 따르면, 가능한 해결책으로 종속성 관련 설정 검토나 IDE 설정 변경을 제안합니다. 특히 IDE에서 Gradle 대신 IntelliJ IDEA를 사용하여 프로젝트를 빌드하고 실행할 때 발생하는 문제에 대한 해결 방안을 제공합니다.

  • 톰캣 서버가 안열립니다 그리고 RUN이 비활성화됩니다 - 여기에서는 비슷한 문제에 대한 다른 사례와 해결 방안에 대한 언급이 있습니다. 문제의 원인과 해결 방법이 도움이 될 수 있습니다.

이러한 유형의 문제는 보통 프로젝트의 설정이나 의존성 문제로 발생하므로, 제시된 링크에서 안내하는 내용을 참조하여 프로젝트의 build.gradle 파일이나 다른 설정 파일을 확인하시기 바랍니다. 또한, IDE의 빌드와 실행 설정을 검토해 보는 것도 좋습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

wo12lf24님의 프로필 이미지

작성한 질문수

질문하기