그동안 톰캣 매니저를 통해서만 서버를 구동시켜오다가 이번에 Dynamic Web Project로 작성 테스트를 해보려고
이클립스의 Run As Server에 Tomcat 7.0을 등록시키고 서버를 구동시켜 보았습니다.
제 이클립스에 프로젝트가 4개정도 있는데 3가지는 Java > Tomcat Project 를 이용해서 작성한 반면...
(톰캣 프로젝트로 작성하면 프로젝트 루트 폴더에 바로 bin폴더, src폴더 WEB-INF 폴더가 생성됩니다.)
한가지만 Dynamic Web Project로 구성해서 간단한 테스트를 돌려보았습니다.
(다이나믹 웹 프로젝트는 WebContent 폴더가 나오고 class파일은 프로젝트 루트 폴더의 build 폴더 내로 들어갑니
다.)
두가지 프로젝트의 폴더 구성이 다르고 class폴더의 위치와 라이브러리를 보관하는 폴더의 위치도 제각각인 상태에서
톰캣 매니저로 서버를 구동시키는 것과 이클립스로 서버를 구동시키는 것에는 매우 큰 차이가 있더군요..
(왜 진작에 이런 테스트를 많이 거치지 못했는지 후회됩니다....)
먼저 톰캣 매니저(시작줄에 위치하는 Tomcat Properties)로 구동한 프로젝트는 모든 프로젝트를 구동시킨 반면
이클립스로 구동하는 서비스는 선택된 프로젝트(다이나믹 웹 프로젝트)만 구동되었습니다.
이렇게 하나의 프로젝트만 서버에 올리는 방법이 있다는 것도 신기하였지만
문제는 톰캣 매니저로 구동할 때는 기존의 톰캣 프로젝트로 작성된 프로젝트들은 정상적으로 작동되는 반면
다이나믹 웹 프로젝트의 서비스는 내부 라이브러리 폴더도 인식하지 못하였고 클래스 파일 위치도 제대로 인식하지 못하였습니다.
반면 이클립스의 Run As Server로 구동하였을 때는 선택된 단일 프로젝트(다이나믹 웹 프로젝트)만 실행되었고
신기하게도 이번엔 다이나믹 웹 프로젝트의 폴더 구성의 라이브러리 폴더나 클래스 파일 위치를 정확하게 잡아내더군요.
어찌됬든 서비스가 구동되니 다행이지만 앞으로 Spring MVC를 이용해서 서비스를 제작할테고 그러면 지금보다 폴더가
더욱 복잡하게 구성될텐데 톰캣이 어떤 방식으로 이런 폴더 구성을 잡아내는가, 이해하지 않고 맘대로 제작했다가는 나중에
크게 후회할 듯 싶어서 질문 드립니다.
두가지의 서버 구동방식에 어떤 차이점이 있었고 톰캣이 어떤 식으로 클래스와 jar 라이브러리들을 불러들였는지
아신다면 답변 부탁드립니다. 아니라면 참조문서라도 알려주시면 감사하겠습니다.
읽어주셔서 감사합니다.
컨텍스트의 docbase는 워크스페이스 안 .meta???? 디렉토리 안으로 되어 클래스 파일과 리소스 모두 컨텍스트 디렉토리
안으로 복사합니다.
물어보신 두 가지 방식 차이가 없기 때문에 신경 쓰지 않으셔도 되겠습니다.
2012. 1. 25. 오후 10:01 "강동욱" <happens...@gmail.com> 작성:
> 두가지 서버 구동점 방식에 차이가 있어서 혹시 아시는 분 계시면 꼭 답변 좀 부탁드립니다.
그나저나 이클립스에서 단순히 서버만 구동하는 줄 알았는데 자동으로 server.xml 까지 수정하고... 리소스를 워크스페이스
안으로 불러들인다니.. 처음 알았네요.
--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
웹에서 이 토론을 보려면 https://groups.google.com/d/msg/ksug/-/GC604xP7XYsJ을(를) 방문하세요.
그럼 반영안되고 하는문제는 없어서 편하더군요.
2012년 1월 27일 오후 3:13, 이상용 <kr.goo...@gmail.com>님의 말:
저도 질문 덕분에 자세히 알게 되었네요. 질문 고맙습니다. 다음에 또 질문하시면 허광남님이 가장 먼저 확실한 답변을 해 주실 것 같아요 :)
/Joshua Jeong
생각했던 것 X100만큼 상세히 답을 주셔서 정말 큰 도움이 되었습니다.
허광남 님 정말 좋은 문서를 공개해주셔서 감사합니다.
직접 작성하신 것 같던데... 너무 자세한 설명이 있어서 감동받았습니다 ㅠㅠ