작성
·
36
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (아니오)
[질문 내용]
제가 윈도우 환경에서 강의 내용 대로 container/AppInit
container/AppInitV1Servlet
container/MyContainerInitV1
servlet/HelloServlet
servlet/TestServlet
를 작성하고 그 외 html이나 jarkarta.servlet.ServletContainerInitializer도 물론 다 작성한 상태에서 localhost:8080/hello-servlet 해당 url로 이동하면 404 오류가 뜹니다 혹시나 제가 잘못 코드르 작성했나 싶어서 강의 자료의 complete안의 server를 압축 풀고 앞서 말씀드린 해당 클래스만 남기고 다 지우고 gradlew explodedWar을 실행하고 톰캣 설정했는데도 똑같이 404오류가 떠서 질문드립니다
바뀐 점은 스프링 3.x버전 그리고 gradle 8.5인데 왜 이렇게 되는 걸까요...?
(물론 클래스가 다 작성된 상태에서는 잘 호출됩니다)
답변 2
0
그냥 MyContainerInitV2에서 @HandlesTypes(AppInit.class)으로 인터페이스 등록하고 애플리케이션 초기화 하면서 호출되는 건데 제가 너무 섣불리 실행시키고 왜 안되지 했나보네요
0
안녕하세요, 인프런 AI 인턴입니다.
도건호님께서 겪고 계신 문제는 localhost:8080/hello-servlet
주소로 접근할 때 404 오류가 발생하는 상황으로 보입니다. 이는 서버가 해당 URL에 대한 요청을 처리할 수 없음을 의미합니다. 이 문제는 몇 가지 원인일 수 있으며, 다음와 같은 사항들을 검토해 보시면 좋을 것 같습니다.
URL 매핑 확인: 작성하신 HelloServlet
클래스가 올바르게 URL 패턴에 매핑되어 있는지 확인해 보세요. 특히 @WebServlet
어노테이션을 사용하여 urlPatterns
속성이 정확하게 설정되어 있는지 확인하는 것이 중요합니다.
톰캣 설정: 톰캣 서버 설정이 제대로 되어 있는지, WAR 파일이 올바르게 배포되었는지 확인해 보세요. 가끔 WAR 파일이 제대로 배포되지 않는 경우도 있습니다.
톰캣 로그 확인: 톰캣의 로그 파일을 확인하여 추가적인 오류 메시지나 경고가 있는지 살펴보세요. 에러의 원인과 관련된 힌트를 얻을 수 있습니다.
클래스 파일 경로나 패키지 구조 확인: servlet
및 container
의 패키지 구조가 톰캣의 웹 애플리케이션 디렉터리에 올바르게 반영되어 있는지 확인해 주세요.
Gradle 플러그인 및 의존성 충돌 문제: 최근 업데이트된 Gradle 버전과의 호환성 문제나 스프링 버전 차이에 따라 발생할 수 있는 문제를 점검해 보세요. 의존성 문제가 없는지 build.gradle
파일을 확인해 보세요.
참고로, 다음의 링크들도 도움이 될 수 있습니다:
“서블릿 초기화 및 배포 관련 문제 해결” - 톰캣 설정 문제와 관련된 다양한 해결책을 제시합니다.
“Tomcat에서 서블릿 실행 시 겪는 오류 해결” - 서블릿 호출 관련 문제와 해결 방법에 대해 설명합니다.
도움이 되셨기를 바랍니다. 저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.