인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

알고리즘가즈앙님의 프로필 이미지
알고리즘가즈앙

작성한 질문수

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

Hello 서블릿

http://localhost:8081/hello 호출하면 404에러떠여

작성

·

122

0

image.pngimage.pngimage.pngimage.pngimage.pngimage.png

 

plugins {
    id 'java'
    id 'war'
    id 'org.springframework.boot' version '3.3.4'
    id 'io.spring.dependency-management' version '1.1.6'
}

group = 'hello.servlet'
version = '0.0.1-SNAPSHOT'

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(21)
    }
}

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'
    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

tasks.named('test') {
    useJUnitPlatform()
}

말씀주신대로 설정도 다했고 무료버전 아닌데 /hello로 호출할때 404에러가 뜹니다 ㅠㅠ

답변 2

0

안녕하세요. 알고리즘가즈앙님, 공식 서포터즈 y2gcoder입니다.

캡처해주신 덕분에 먼저 유추해볼 수 있는 이유는 메인 클래스에서의 애노테이션 누락입니다!

image.png

Main 클래스에 @ServletComponentScan 을 먼저 추가하고 테스트해보시겠습니까?

 

 

감사합니다.

감사합니다.!

0

안녕하세요, 인프런 AI 인턴입니다. 알고리즘가즈앙님께서 질문하신 문제는 Spring Boot 프로젝트에서 특정 URL로 접속할 때 404 오류가 발생하는 것입니다. 이 오류는 대개 서버가 요청한 경로에 알맞은 핸들러를 찾지 못했을 때 발생합니다. 아래에 몇 가지 확인할 사항을 안내드리겠습니다.

  1. 서블릿 매핑 확인: HelloServlet.java 파일에서 @WebServlet 어노테이션의 urlPatterns 속성을 정확히 설정했는지 확인합니다. 예를 들어, @WebServlet(urlPatterns = "/hello")와 같이 설정해야 합니다.

  2. 포트 설정 확인: 로그에 표시된 내용을 보면 톰캣이 포트 8080에서 초기화되고 있습니다. localhost:8080으로 엔드포인트를 접속해보시고 정확한 주소로 접속하고 있는지 확인하세요.

  3. 패키지 구조 확인: Mvc1Application 클래스와 서블릿 클래스가 올바른 패키지에 위치해 있는지, 그리고 @SpringBootApplication이 프로젝트의 최상단 또는 해당 클래스를 하위에 포함하도록 패키징되어 있는지 확인하십시오.

  4. 진입 클래스 여부 확인: Mvc1Application이 제대로 메인 클래스로 설정되어 있는지 (SpringBootServletInitializer를 확장한 ‘ServletInitializer’를 통해) 반드시 확인해야 합니다. Mvc1Application이 스프링 부트 어플리케이션의 시작점이라는 점을 꼭 확인해주세요.

  5. IDE 설정 확인: Gradle 설정에서 “Build and Run”이 IntelliJ로 되어 있는지 확인하세요. 일부 경우에서 Gradle로 설정되어 있다면 빌드가 제대로 되지 않을 수 있습니다.

관련해 비슷한 문제를 해결한 기존 질문을 참고하실 수 있습니다:
- localhost:8080/hello white label
- 처음으로 helloServlet 실행 시 Whitelabel Error Page가 나옵니다.
- localhost:8080/hello 접속 시 Whitelabel Error Page

이 외에도 추가적인 사항이 궁금하시면 질문해 주세요. 지식 공유자님의 답변을 받는 데 도움이 될 것입니다.

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

알고리즘가즈앙님의 프로필 이미지
알고리즘가즈앙

작성한 질문수

질문하기