진짜 개발자
본문 바로가기

Web

JSP,Servlet - WAR란(Intelli J에서 Tomcat에 WebApplication 구동하기)

728x90
War 파일이란

Tomcat 과 같은 WAS에서 우리가 개발한 WebApplication을 구동하기 위해서는, 우리가 개발한 Web Application을 WAR로 배포하여 Tomcat에서 실행해야합니다. Web Application을 개발하고 Tomcat설정 그리고 WebApplica tion을 War로 만들어 배포하여 실행하는 과정을 알아보도록 하겠습니다.

 

*War 파일이란?

WepApplication Archive의 약자로 웹어플리케이션을 압축하여 저장해놓은 형태입니다. 개발한 웹 어플리케이션을 WAS에서 (Tomcat 등) 동작할 수 있는 구조를 담고 있습니다.


*Jar, War

https://server-engineer.tistory.com/315


 

1. 직접 배포한 WAR을 이용해 Tomcat에서 구동하기

1.1 Web Application 개발

당연하지만 우선 간단히 Web Application 프로젝트를 만들어야 합니다. Tomcat에 WebApplication을 배포하는 방법을 알아보는 포스팅이므로 간단히 만들겠습니다.

 

Maven 프로젝트를 만들기 위해 Maven을 선택합니다. 그후 Create from archetype을 체크하고 하단에서 maven-archetype-webapp을 찾아 생성합니다.

 

pom.xml에 servlet을 사용하기 위해 의존성을 추가합니다.

 

Servlet이 담길 src 디렉토리를 생성합니다. java라는 이름으로 만들었습니다. 그냥 디렉토리만 생성하면 src디렉토리로 인식을 하지 않습니다. src디렉토리를 설정하기 위해 Project Structure탭을 열어 Modules를 클릭한 뒤 생성한 src 디렉토리를 클릭한뒤 상단에 Sources를 클릭합니다.

 

HelloServlet Class를 생성한 뒤 HttpServlet을 상속받았습니다. 그 후 doGet()메소드를 오버라이딩 하여 간단한 웹페이지를 반환하도록 했습니다.

 

마지막으로 간단히 web.xml에 생성한 servlet을 인식시키기 위해 다음과 같이 설정합니다.

 



1.2 Web Application 배포하기 (WAR 생성)

Intellij 상단의 Build탭을 클릭한 뒤 Build Artifacts를 클릭합니다.


그 후 나타나는 창의 war를 확장하여 Build를 클릭합니다.


Build의 결과로 target 디렉토리 하단에 "해당 프로젝트의 이름+war" 파일이 생기는 것을 볼 수 있습니다.


target 디렉토리를 우클릭한뒤 Copy Path를 클릭하면 위치를 복사할 수 있습니다.


붙혀넣기 해봅니다. 해당 프로젝트의 디렉토리와 같은 레벨에 WAR가 생겨난 것을 볼수있습니다.


war파일을 Apache Tomcat의 webapps 디렉토리에 넣어줍니다. 이름 그대로 "war"형태의 webapp들이 위치하는 곳입니다.


다시 Apache Tomcat의 bin디렉토리로 이동하여 startup.bat 파일을 실행합니다.(Window 기준) tomcat이 실행되면서 webapp 디렉토리에 존재하는 War의 압출을 풀게됩니다.


다시 webapps 디렉토리로 이동하면 war의 압축이 풀린것을 볼 수 있습니다.


현재 Tomcat이 구동중인 상태이므로 servlet을 매핑한 url로 요청을 보내보면 응답이 오는 것을 볼 수 있습니다.




2. Intelli J에서 Tomcat에 WebApplication 구동하기 

2.1 Tomcat 설정하기 

우선 우측 상단의 Add Configuration을 클릭한뒤 나타나는 창의 왼쪽 상단에 보이는 +를 클릭합니다.

 

쭉 아래로 내리다 보면 Tomcat Server가 보입니다. 확장한 후 Local을 클릭합니다.

 

그 후 나타나는 창에서 Applicaton Server를 클릭하고 미리 설정되어있는 Tomcat을 클릭합니다.

 

그 다음 배포 설정을 위해 Deployment 탭으로 이동한 뒤 우측의 +를 누릅니다. 그 후 나타나는 Artifact를 클릭합니다.

 

나타나는 창에서 war exploded를 선택합니다.

*war exploded

https://stackoverflow.com/questions/45263591/whats-the-meaning-of-web-exploded-mean-in-intellij-idea 위의 링크에서 설명하는 바로는 war exploded를 선택하면 서버를 재시작하지 않고도 어플리케이션을 갱신할 수 있다고 합니다.

 


 

2.2 테스트

서버를 시작하고 매핑한 url로 요청을 보냅니다.


'Web' 카테고리의 다른 글

Web URL인코딩 , 디코딩  (0) 2018.12.17
Web - HTML  (0) 2018.09.05