h2 에러 서블릿 충돌 에러

greenTea·2023년 12월 8일
0

서블릿 컨텍스트 충돌 문제 해결: H2 콘솔 비활성화 방법

h2와 스프링 시큐리티를 동시에 사용하던 중 아래와 같은 에러가 발생했습니다.

문제 상황

이는 서블릿 컨텍스트에 둘 이상의 매핑 가능한 서블릿이 존재하기 때문에 발생합니다
{org.h2.server.web.JakartaWebServlet=[/h2-console/*],
org.springframework.web.servlet.DispatcherServlet=[/]}.

이는 서블릿 컨텍스트 충돌로 인한 오류로 여러 서블릿이 동일한 컨텍스트에 매핑되었을 때 발생합니다. org.h2.server.web.JakartaWebServletorg.springframework.web.servlet.DispatcherServlet이 동일한 컨텍스트에 있기에 발생한 문제입니다.

서블릿 충돌이란, 웹 애플리케이션에서 두 개 이상의 서블릿이 동일한 URL 패턴에 매핑되어 있을 때 발생하는 문제를 말합니다. 각 서블릿은 특정 URL 패턴과 연결되어 있어야 하는데, 같은 URL 패턴이 두 서블릿에게 할당되면, 웹 서버는 특정 요청이 들어왔을 때 어떤 서블릿에 요청을 전달해야 할지 결정할 수 없게 되서 문제가 발생하게 됩니다.

해결 방법

해결방법은 간단합니다. H2 콘솔을 비활성화하는 것입니다. 이를 위해 아래와 같이 설정 파일을 수정하면 됩니다.

h2:
  console:
    enabled: false

이렇게 설정을 변경하면, H2 콘솔이 더 이상 활성화되지 않으므로, 서블릿 컨텍스트 충돌 문제가 해결됩니다.

profile
greenTea입니다.

0개의 댓글