@ServletComponentScan 작성 후 오류를 해결했는데 이유를 알고싶습니다.
421
작성한 질문수 17
@ServletComponentScan 작성, HelloServlet 클래스까지 모두 작성 후 실행 -> 오류발생커뮤니티 글들에서 같은 오류와 해결방안을 바탕으로 해결완료.
build.gradle 에서 providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' 을 삭제하니정상 작동하였습니다.
1.providedRuntime을 삭제하고 작동한 이유가 무엇인가요?
하지만 localhost 실행하니 servlet은 잘 생성된 것 같은데 페이지는 여전히 오류화면이 뜹니다.
2024-06-20T10:54:52.014+09:00 INFO 34832 --- [servlet] [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2024-06-20T10:54:52.014+09:00 INFO 34832 --- [servlet] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2024-06-20T10:54:52.015+09:00 INFO 34832 --- [servlet] [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms
2. 서블릿이 잘 생성됐는데 페이지는 왜 오류뜨나요?
jdk17 , 스프링부트 3.3.0
답변 2
1
안녕하세요, 인프런 AI 인턴입니다.
질문하신 @ServletComponentScan 작성 후 발생하는 오류 관련하여, providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat' 을 삭제한 이유와 페이지 오류 해결에 관한 조언을 드리겠습니다.
providedRuntime삭제 이유:providedRuntime은 해당 의존성이 배포 시점에 제공되리라 예상되어 컴파일 시점에는 필요하지 않음을 나타냅니다.spring-boot-starter-tomcat은 Spring Boot가 내장 Tomcat 서버를 사용할 때 필요한 의존성입니다. 기본적으로 Spring Boot는 내장 Tomcat을 사용하기 때문에 이 의존성을 직접 명시할 필요가 없습니다. 특히,providedRuntime로 명시하면 실제 실행 환경에서만 해당 라이브러리를 찾게 되므로 개발 중 오류를 일으킬 수 있습니다. 따라서 이를 제거하니 정상 작동한 것입니다.페이지 오류 문제: 서블릿이 정상적으로 초기화되었다는 로그가 출력되었음에도 불구하고 페이지가 오류를 띄우는 경우, 일반적으로는 URL 매핑 문제, 서블릿에서 예외 발생, 혹은 DispatcherServlet 설정 문제 등 다양한 원인이 있을 수 있습니다. 정확한 오류 내용이 없기 때문에 구체적인 해결책을 제시하기 어렵습니다. 그러나 서블릿이 정상적으로 작동하더라도 해당 URL에 맞는 컨트롤러가 정확히 구현되었는지, 그리고 view resolver 설정이 올바르게 되었는지 확인해보시길 권장드립니다.
해당 질문과 유사한 문제를 다루는 기존 답변을 참조하시면 도움이 될 수 있습니다:
- “ServletComponentScan 어노테이션 추가 후 오류가 발생합니다”는
ServletComponentScan관련 오류 해결에 유용한 팁을 제공합니다.
- ”@ServletComponentScan 작성 이후 서버 오류”에서는 비슷한 환경에서 발생한 오류와 그에 대한 해결 방법을 제시하고 있습니다.
이 링크들이 구체적으로 질문의 상황과 일치하지 않을 수도 있으나, 설정 관련 이슈 해결에 도움이 될 팁을 얻을 수 있을 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
servlet과 container에 대한 질문입니다
0
21
1
api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?
0
62
1
jsp 의존성 수정 요청
0
75
2
요즘 웹 서버가 주로 사용되는 이유는 SPA 구조 때문일까요 ?
0
142
1
save() 메서드 문의
0
65
1
절대 경로로 templates/basic 하위 파일 열면 css 적용 안되는 현상
0
99
1
request-body-json
0
83
2
MVC 패턴의 적용 단위
0
94
1
RequestMapping을 이용한 핸들러, 어댑터
0
118
2
save 후 결과화면
0
86
2
jsp를 이용한 view
0
97
1
application.properties에 debug 추가해도 결과가 똑같습니다.
0
175
1
수업 코드 제공 관련 문의
0
97
2
RequestMappingHandlerAdapter의 Controller 호출 과정
0
98
3
파일 오픈 시
0
68
1
스프링 배치 관련
0
77
1
@RequestParam의 defaultValue가 blank 값도 처리하는 지 여부
0
112
1
postman으로 /request-body-json-v1 호출시 500 error
0
94
1
프론트엔드와 백엔드의 mvc, rest api에 대한 질문
0
77
1
모델의 역할과 계층 분리에 대한 이해 차이 + 추가질문
0
111
1
console log 출력 관련 질문입니다.
0
73
1
애플리케이션이 실행 되지 않습니다 ㅠㅠㅠ
0
138
1
html 변경하는 부분 적용 문제
0
100
1
한글 깨짐
0
76
2






