티스토리 뷰

최초작성: 2018.01.12

Problem

특정 오류로 인하여 계속해서 Not Found 창이 발생하였음.
WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/webop_workspace/] in DispatcherServlet with name 'appServlet'
을 통하여 문제지점이 appServlet 이라는 가정하에 해결방법 찾아봄

 

Approach

appServlet을 찾지 못하는 것은 경로지정과 관련이 있으며 그 원인은 다양함.
1)Java Build Path > Source탭의 디폴트output folder 경로가 진짜 Classess가 있는 경로일 가능성이 있음
2) servlet-context.xml안의 Base-Package 영역의 제한된 URI 매핑 일 수 있다. -> *를 사용하여 모두 포함할 수 있도록 변경하여 준다.

3) web.xml에 세팅되어 있는 컨트롤러 세팅 문제일 수 있다. -> 매핑 클래스 앞에 패키지명을 써줌으로써 찾도록 한다.

Solution

<Context docBase="webop_workspace" path="/webop_workspace" reloadable="true" source="org.eclipse.jst.jee.server:webop_workspace"/></Host>

문제점은 webop_workspace가 아닌 톰캣의 server 였음. 어쩐이유인지 path 부분이 {/}로 초기화 되어있었고, 이로 인하여 URL변동이 일어나 주소에러가 발생.

Review

1) Clean을 해주지 않으면 Run을 가동시켰을 때, 전 결과가 어느정도 반영됨(정상이지만 오류가 뜰 수 있다)
2) 소스트리의 체크아웃은 현재 이클립스에 작업중인 파일에 아무런 영향을 주지 않음. 만일 이전 작업이나 소스트리에 있는 브랜치를 불러오고 싶다면 [이 커밋까지 현재 브랜치를 초기화]를 Hard로 선택해 준 뒤에, 체크아웃을 실시 -> 이클립스에서 refresh를 해주어야 반영된다.
    *아직까지 [브랜치초기화]의 부작용이나 영향은 잘 모르겠다..
3) 404가 떳다는 것은 톰캣실행은 문제 없다는 것, 경로나 코딩을 재확인해야함.