맨날 시니어개발자분들이 만든 환경에서만 개발해봤지 혼자 해본적이 없어서
세팅을 해봤는데, 패키지 설계부터 뭘 어떻게 해야할지 막막했다.
프로젝트 만드는거에서부터 삽질을 했다 그래서 정리를 해보겠다.
(MAC환경에서 했으나 다를건 없을 것이다)
환경 세팅
1. STS 다운로드
STS에는 메이븐 플러그인이 기본으로 깔려있으므로 이걸로 설치.
http://spring.io/tools/sts/all
2. Tomcat 다운로드
원하는 버전의 톰캣 다운로드. (나는 7을 받았음)
http://tomcat.apache.org/download-70.cgi
이제 본격적으로 프로젝트 생성하기
위에있는 동그라미 아이콘을 누른 후(Dashboard) Spring Project를 클릭한다.
아래와 같은 창이 뜨면, 프로젝트 이름 쓰고 Simple Spring Web Maven 을 선택하고 Finish 누름
그러면 이런 구조의 프로젝트가 생성이 되었다.
pom.xml에 보면 필요한 몇가지의 라이브러리들을 dependency 해놓은 것을 볼 수 있다.
이제 톰캣을 연동해보자.
Server창에서 우클릭 - New를 누르면 아래와 같은 창이 뜬다.
Server이름을 알아보기 좋게 바꾸고, 아까 다운받은 톰캣버전과 같은 것을 선택 후 Finish.
+ 여기서 중요한 것은..
새로 추가된 톰캣서버에 모듈을 추가해야되는데... 모듈이 없다고 나온다.
이럴 때는 프로젝트 이름 우클릭 - Maven - Update Project... 를 누르면 해결된다.
위와 같은 작업 후에 모듈을 추가하면 추가 된다~
이제 Pen 프로젝트가 나타났으니 Add를 하고 Finish
생성된 서버를 더블클릭 한 후, Path와 모듈을 확인해보자.
Path가 /Pen으로 되어있으므로 / 로 바꾼다.
만약 /Pen 이외의 다른것들이 보인다면 Remove를 해주자. (에러의 원인임)
이제 스프링의 흐름을 따라 Hello World!!!를 찍어볼 차례다.
src/main/java 밑에 패키지랑 컨트롤러 하나를 만들어보자.
/test 라는 URL로 호출되면 test.jsp 를 띄우겠다는 코드이다.
webapp/WEB-INF/view/test.jsp도 하나 생성해두자. <h2>Hello World!!!</h2>도 써넣고.(요건 캡쳐안했음)
톰캣을 실행시켜보자.
아마 안될 것이다. 404 에러가 발생할 것이다.
web.xml에서 부르고 있는 mvc-config.xml을 열어서, 실행하려는 패키지를 스캔하도록 설정해놓아야한다. 주석에 써있듯이.
(인터넷 찾아보니까 이렇게하면 뭔가 문제가 있다고 하던데, 공부해야겠다.. 스프링은 알수록 어려움..)
저장하고 다시 실행하면 짠~ 드디어 Hello World!!!가 보인다 !
+ 난 안된다. 에러가 난다.!!! ㅠㅠ
이것때문에 아주 속터져 죽는줄 ㅋㅋ ContextLoaderListener Class not found...
이 에러는 설정이 잘못되었을 때, 또는 엉켰을 때 나는 에러이다.
해결법 1.
Spring 관련 dependency가 잘못 되었을 수 있으므로,
.m2/repository/org/springframework 밑에 있는 모든 것들을 삭제한다.
그런다음, 프로젝트 우클릭 - close project 한 다음 다시 open project 하면
메이븐에서 다시 라이브러리들을 업데이트 한다.
이 방법으로 해결봤음 ㅋㅋ
해결법 2.
멀쩡히 잘 돌아가던 프로젝트도 SVN으로 체크아웃 받은 후에 저런 에러 뜨는 경우가 있고,
해결법1로도 안될 때가 있는데.. 그럴 때는
menu의 Project - clean,
그리고 톰캣 서버에서 우클릭 후 clean 또는 clean tomcat work directory를 실행한다.
(이래도 안되면 체크아웃을 다시 받던가... 다시 만들어봐야함.....)
'개발 > Spring' 카테고리의 다른 글
[에러] type parameters of T cannot be determined;,.,, (1) | 2014.11.06 |
---|---|
[Spring] Service 객체에서 초기화 하는 init 메소드 만들기 (2) | 2014.05.15 |
RestTemplate의 HttpMessageConverter 에러 (0) | 2013.06.12 |
Custom annotation 만들기 (Spirng AOP 이용) (0) | 2013.04.09 |
특정 날짜 하루에 해당하는 데이터를 찾을 때 (0) | 2013.02.15 |