개발하는 뚝딱이

[Spring] war파일 배포 tomcat 404에러 본문

[Spring] war파일 배포 tomcat 404에러

개발자뚝딱이 2019. 10. 7. 16:55

 

 

스프링으로 웹 서비스를 구축 후, 배포 파일을 만들었다. 이 때, 404에러가 뜨는데 한참 이유를 찾아도 모르겠다.

 

404에러는 url을 제대로 매핑하지 못했을 때 일어난다. 지정한 웹 페이지로 가지 못했을 때 발생하는 에러이다.

이클립스에서는 제대로 돌아가는데??? 그렇다면 프로그램 내에서 컨트롤러의 mapping문제는 아닐 것이다. 배포 or 서버의 문제일 듯.

한참 삽질을 하다가 case로 분류해보았다.

 

Case 1

프로젝트 우클릭 → Properties Web Project Settings의 Context root를 확인한다

보통 Context root는 기본적으로 프로젝트의 artifactId로 지정된다. 다른 프로젝트를 import할 때 항상 context root를 고쳐줘야 하는데, 이게 귀찮으면 artifactId를 원하는 것으로 정하는 것이 좋다

 

 

Case 2

  • war파일을 만든 후, 톰캣의 경로로 이동한다.

  • tomcat경로 → conf server.xml을 수정한다.

  • Host tag 안에 Context tag 문장을 넣어줄 것.

...
    <Context docBase="프로젝트명" path="/url상의 주소" reloadable="false"/>
</Host> 

여기서는 보통 'war만들기' 구글링하면 나오는 내용이므로 쉽게 찾을 것이다.

 

 

Case 3

Case1로 해결이 되지 않을 수 있다. 그렇다면 "프로젝트명"을 상대경로로 적어주면 된다.

 

 

 

Case 4

  • 프로젝트 우클릭 → Properties  Deployment  Assembly

  • webapp의 PATH를 자신의 프로젝트 구조에 맞게 바꿔준다.