• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

다시 복습하려고 프로젝트 다시 켰는데 오류가 뜹니다

21.07.20 15:52 작성 조회수 7.87k

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
1편 완강하고 2편으로 넘어가서 보다가
다시 1편 다시 복습하려고 인텔리제이를 2편에서 새로 만들던 프로젝트 닫기하고
1편에서 공부하면서 만들어서 타이핑 쳤던 servlet 프로젝트를 켰는데
서블릿 프레임워크 들이 다 어디로 삭제되었는지 어디서 오류가 발생했는지
import 되어야 할 부분이 다 빨갛게 변했습니다. Alt + Shift + Enter 나 Find JAR on Web 등
마우스 커서 올려서 눌러볼 수 있는 걸로 해결하려고 해도
방안을 못찾고 있습니다.
프로젝트를 삭제하고 다시 만들어야 하나요? 되살릴 수 없는 방법 있을가요?
그 동안 스프링MVC 1편에서 만들었던 프로젝트에서 모든 클래스가 다 빨갛게 변했습니다 ㅠㅜ
Run on Server 돌리면 클래스를 찾을 수 없다고 나오는데
어떻게 해야할지 못 찾겠습니다..ㅠㅜ
중간에 강의보면서 구글링 검색하고, build.gradle -> dependencies 에 빠진 항목 있나
살펴보다가
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' 를 확인하고
타이핑 쳐서 적용하고
다시 실행하면 빨간 색 글씨는 다시 원래대로 정상으로 돌아가는데
spring 은 구동은 되는데, 어디서 부터 에러가 발생했는데, 버젼이 안 맞는건지, 여기서 부터 잘 모르겠습니다....
콘솔창에는 이렇게 나옵니다.
------------------------------------------------------------------------------------
2021-07-20 16:51:39.087 WARN 38188 --- [ main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Unexpected exception during bean creation; nested exception is java.lang.NoClassDefFoundError: javax/servlet/annotation/WebServlet 2021-07-20 16:51:39.103 INFO 38188 --- [ main] ConditionEvaluationReportLoggingListener : Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled. 2021-07-20 16:51:39.145 ERROR 38188 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Unexpected exception during bean creation; nested exception is java.lang.NoClassDefFoundError: javax/servlet/annotation/WebServlet at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:537) ~[spring-beans-5.3.7.jar:5.3.7] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.7.jar:5.3.7] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.7.jar:5.3.7] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.7.jar:5.3.7] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:213) ~[spring-beans-5.3.7.jar:5.3.7] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:196) ~[spring-context-5.3.7.jar:5.3.7] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:746) ~[spring-context-5.3.7.jar:5.3.7] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:564) ~[spring-context-5.3.7.jar:5.3.7] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758) ~[spring-boot-2.5.0.jar:2.5.0] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:438) ~[spring-boot-2.5.0.jar:2.5.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:337) ~[spring-boot-2.5.0.jar:2.5.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1336) ~[spring-boot-2.5.0.jar:2.5.0] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1325) ~[spring-boot-2.5.0.jar:2.5.0] at hello.servlet.ServletApplication.main(ServletApplication.java:12) ~[classes/:na] Caused by: java.lang.NoClassDefFoundError: javax/servlet/annotation/WebServlet at org.springframework.boot.web.servlet.WebServletHandler.<init>(WebServletHandler.java:39) ~[spring-boot-2.5.0.jar:2.5.0] at org.springframework.boot.web.servlet.ServletComponentRegisteringPostProcessor.<clinit>(ServletComponentRegisteringPostProcessor.java:49) ~[spring-boot-2.5.0.jar:2.5.0] at org.springframework.boot.web.servlet.ServletComponentScanRegistrar$ServletComponentRegisteringPostProcessorBeanDefinition.lambda$getInstanceSupplier$0(ServletComponentScanRegistrar.java:94) ~[spring-boot-2.5.0.jar:2.5.0] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1231) ~[spring-beans-5.3.7.jar:5.3.7] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1173) ~[spring-beans-5.3.7.jar:5.3.7] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564) ~[spring-beans-5.3.7.jar:5.3.7] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) ~[spring-beans-5.3.7.jar:5.3.7] ... 13 common frames omitted Caused by: java.lang.ClassNotFoundException: javax.servlet.annotation.WebServlet at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) ~[na:na] at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) ~[na:na] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na] ... 20 common frames omitted

답변 2

·

답변을 작성해보세요.

0

OMG님의 프로필

OMG

2021.07.25

첨부하신 링크보고 확인해보았습니다.

1.  첫 화면

2. 우측상단 Test 하던 설정을 서버 구동으로 변경

3.  실행시 에러 발생(인텔리제이 IDEA)

 

4. 정상작동(Gradle)

5. Run on Server 실행할 때 모래시계 로딩중이 무한루프 돌아서 

프로젝트 공유 받고 무료버전으로 실행시켜보았습니다.

우선 말씀하신 증상은 build and run using을 INTELLIJ IDEA로 해서 생기는 문제가 맞으며

이전에는 어느분에게 조언을 듣고 INTELLIJ IDEA로 선택했을 때 문제 없이 작동한지 모르겠으나 

무료버전에서 war 패키징에서 톰캣과 idea설정이 충돌이 발생하여 gradle로 진행해야 하는 것은 어쩔 수 없어보입니다.

그리고 모래시계 관련된 부분은 서버가 계속 구동중임을 나타내는 것으로  실행 자체에 영향을 끼치는 것은 아니며 종료 시 메시지가 출력되는 것 또한 어쩔 수 없는 부분으로 보입니다.

또한 gradle시 시간이 오래 걸리는 것도 gradle을 거쳐서 실행되기에 시간이 소요가 되고 그렇기 때문에 영한님이 강의에서 intellij idea로 바꿔서 설정하라고 말씀해주시는 부분이며 gradle로 진행해야하는 상황상 속도 또한 어쩔수 없는 부분으로 보입니다.

---

무료 버전의 이러한 불편한 점들 때문에 다른 수강생분들에게 STS의 사용 혹은 유료 버전의 결제를 권장드리고 있습니다.

추가적으로 궁금한 사항은 새로 글을 작성해서 올려주시면 다른 서포터 분들 혹은 영한님이 자세히 답변해 주실거에요.

쿤Hyeong님의 프로필

쿤Hyeong

질문자

2021.07.31

결국은 유료냐 무료 버젼의 차이에서 나오는 문제였네요. 친절한 답변 감사합니다

0

OMG님의 프로필

OMG

2021.07.20

안녕하세요. 쿤Hyeong님, 공식 서포터즈 OMG입니다.

아래의 링크(case 1)와 링크에서 제 답변에 포함된 링크(case 2)를 타고 가시면

쿤Hyeong님과 동일한 에러를 출력하고 있음을 확인할 수 있습니다.

말씀드린 (case 2)에 영한님 답변에 해결책이 있습니다.

https://www.inflearn.com/questions/231532

감사합니다.

쿤Hyeong님의 프로필

쿤Hyeong

질문자

2021.07.21

지금 인텔리제이 무료버젼 사용중이고, 예전강의에서나, 한 참전에 설정에서 Gradle 로 돌리면 오래걸리거나 Run on Server 실행할 때 모래시계 로딩중이 무한루프 돌아서 IntelliJ IDEA 로 설정하라고 하셨었습니다. 예전에 강의들으면서 무료버젼에서 이렇게 설정할 때는 오류없이 잘 돌아갔는데

왜 갑자기 안되는건지 이해가 안 됩니다.

David님의 프로필

David

2021.07.21

인텔리제이 상단 메뉴 File - Invalidate Caches를 한 번 실행해보시겠어요?

쿤Hyeong님의 프로필

쿤Hyeong

질문자

2021.07.21

그래도 콘솔창에 여러개 에러가 뜹니다 ㅠ

프로젝트 초기화를 진행해보시겠어요?

먼저 프로젝트를 닫은 다음에

File -> Open -> 해당 프로젝트의 build.gradle을 선택해주세요. 그 다음에 선택창이 뜨는데, Open as Project를 선택해주세요.

감사합니다.

쿤Hyeong님의 프로필

쿤Hyeong

질문자

2021.07.22

매번 그렇게 프로젝트를 닫고 다시 해봐도 똑같은 Error 가 콘솔창에 그대로 나옵니다...

David님의 프로필

David

2021.07.22

해당 프로젝트 압축하셔서 구글 드라이브로 공유해주실 수 있으세요?

쿤Hyeong님의 프로필

쿤Hyeong

질문자

2021.07.22

https://drive.google.com/file/d/10bWzDjBHvn9uZ5UEjw3-jQusfLhjwn14/view?usp=sharing

OMG님의 프로필

OMG

2021.07.22

전체 공유로 돌려주세요.

쿤Hyeong님의 프로필

쿤Hyeong

질문자

2021.07.25

https://drive.google.com/file/d/10bWzDjBHvn9uZ5UEjw3-jQusfLhjwn14/view