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

code-tree님의 프로필 이미지
code-tree

작성한 질문수

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

IllegalStateException 에러 질문 드립니다.

작성

·

299

0

위와 같은 에러가 떠서 질문을 드렸었는데 ResponseHtmlServlet 클래스에서 @WebServlet(name, urlPatterns)를 입력하는 부분에 name을 value로 잘못 입력해서 에러가 발생한 것을 확인했습니다. 그런데 위와 같은 실수를 한 경우 ResponseHtmlServlet 클래스 파일에서 에러가 발생했다는 로그는 따로 안 뜨는 건가요..??

답변 1

1

안녕하세요, code-tree 님. 공식 서포터즈 codesweaver 입니다.
.
에러 메시지가 정확한 위치를 짚어낼때도 있고 때로는 전혀 도움이 안되는 메시지를 낼 때도 있습니다. 문의하신 케이스는 
비교적 문제 상황을 정확하게 짚어내고 있는 경우인데요, 오류 메시지인 'urlPattern과 value 속성이 서로 배타적'이라는 얘기는 결국 urlPattern 값을 두번 설정한 것 같다는 뜻으로 볼 수 있습니다. 이 경우라면 urlPattern을 설정하는 곳은 서블릿 객체이기에 여기를 잘 찾아보면 문제의 단서를 찾을 수 있습니다.

 

오류 메시지 외에도 하단에 존재하는 스택 트레이스 라고 하는 호출과정을 역추적하여 오류위치를 파악하는 방법도 있습니다. 스택 트레이스의 내용중 ServletComponentRegiteringPostProcessor 과정을 진행하고 이어서 ServletComponentHandler의 extractUrlPatterns(); 를 하다가 어떤 조건을 만족하지 못하여(Assert로 지정한 파라미터 조건) 오류가 난것을 확인할 수 있습니다. 이런 단서들을 근거로 urlPattern 설정이 잘못되었다는것을 유추할 수 있습니다.
.
감사합니다.

code-tree님의 프로필 이미지
code-tree
질문자

감사합니다!

code-tree님의 프로필 이미지
code-tree

작성한 질문수

질문하기