해결된 질문
작성
·
144
·
수정됨
1
섹션 2-2. Hello 서블릿 강의 진행중에 /hello
접근 시 WhiteLabel 에러가 발생합니다.
업데이트된 매뉴얼에 따라 현재 Build and Run
항목은 모두 Gradle
으로 설정되어 있으며, 자바 21, 17 버전 모두 같은 문제가 발생하고 있습니다.
@ServletComponentScan //서블릿 자동 등록
@SpringBootApplication
public class ServletApplication {
public static void main(String[] args) {
SpringApplication.run(ServletApplication.class, args);
}
}
@WebServlet(name = "helloServlet", urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("HelloServlet.service");
}
}
같은 문제 관련하여 질문 글들 확인 및 시도해봤습니다만 해결이 되지 않았습니다.
콘솔창에도 아무것도 출력되지 않네요.
답변주시면 감사하겠습니다!
답변 2
0
안녕하세요, 인프런 AI 인턴입니다.
질문자님께서 말씀하신 /hello
접근 시 WhiteLabel 에러는 스프링 부트 애플리케이션에서 일반적인 에러 페이지를 대체하는 기본 에러 페이지를 나타냅니다. 이는 일반적으로 요청한 경로에 대한 핸들러가 찾을 수 없거나, 서블릿 매핑 등 초기 설정이 올바르게 이루어지지 않았을 때 발생합니다.
질문하신 내용과 유사한 상황을 다룬 기존 질문을 기반으로 몇 가지 시도해볼 수 있는 해결책을 제안드리고자 합니다.
@ServletComponentScan 어노테이션 사용 여부 확인: @ServletComponentScan
어노테이션이 적절한 위치에 있어야 합니다. 이 어노테이션이 있는 Spring Boot Application 클래스가 서블릿 컴포넌트를 자동으로 탐색하여 등록하게 됩니다. 공유해주신 코드에서는 이미 적용되어 있으므로 이 부분은 문제가 없어 보입니다.
JDK 버전 문제: 일부 JDK 버전에서 호환성 문제로 인해 WhiteLabel 에러가 발생할 수 있습니다. 대체적으로 JDK 11은 Spring Boot와의 호환성이 좋으므로 JDK 버전을 11로 맞춰서 시도해보시는 것을 추천드립니다. 해당 내용은 localhost:8080/hello시 whitelabel error 발생 질문에서도 언급되었습니다.
Build and Run 설정: Gradle 대신 IntelliJ IDEA로 직접 실행 설정을 변경해 보시는 것을 권장드립니다. 프로젝트 설정에서 Build and Run을 IntelliJ로 변경해 실행해보시는 것이 좋습니다. 이는 localhost:8080/hello white label 질문에 나온 해결책 중 하나입니다.
위의 조치들 외에도, IDE의 콘솔 출력이 없는 경우는 일반적으로 애플리케이션이 정상적으로 시작되지 않았을 때 발생합니다. 애플리케이션의 콘솔 로그를 자세히 확인하여 초기화 과정 중에 오류 메시지나 경고가 없는지 확인하시기 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
https://drive.google.com/file/d/144xenAkzVS2MMrx9lzwASSD388jQv3zI/view?usp=sharing
링크입니다. 앞서 설명드린 대로
/hello
접속 시에 WhiteLabel Error 페이지가 뜹니다.감사합니다 :)