remagine

아파치 톰캣으로 프로젝트 관리하기 2 본문

UNIX,LINUX

아파치 톰캣으로 프로젝트 관리하기 2

remagine 2017. 8. 7. 13:53

아파치 톰캣으로 프로젝트 관리하기 2


1. 서버는 크게 윈도우 서버, 유닉스(리눅스) 서버가 있습니다.


2. 클라이언트(사용자)와 서버(제공자,관리자)는 네트워크적으로 분리되어 있는 것이 일반적입니다.


3. 그러나 로컬환경에서 테스트를 한다면, 클라이언트와 서버가 동일한 상태입니다.


4. 127.0.0.1(localhost)는 보통 테스트를 위해 사용합니다.


5. 윈도우 환경에서 윈도우용 아파치-톰캣을 설치하고


6. 프로젝트를 톰캣에서 구동시켜 보도록 하겠습니다. 



이해가 잘못된 부분에 대한 댓글 환영합니다.





로컬 서버 환경


서버라는 것이 굉장히 거창한 개념이였지만, 이제는 서비스의 응답자라고 이해하고 있습니다.


인터넷, 네트워크 환경에서


http, ftp같은 프로토콜로


uri를 클라이언트가 제출하면


해당 uri에 존재하는 자원을


비지니스로직을 거쳐 (jsp, asp 같은 서버 앱)


클라이언트에게 


다시 프로토콜에 결과값을 담아


리턴을 하게 되고


클라이언트는 요청한 브라우저에서


해당 결과값을 해석해서


GUI나 CLI로 보게 됩니다. 


그러므로 IIS나 리눅스 서버를 따로 하지 않고


Windows, OSX같은 OS위에서


JRE를 구동하고


그 위에서 작동하는 JAVA 컨테이너인 아파치-톰캣을 실행하면


서버가 될 수 있습니다.



이 서버는 아직 DNS나 도메인 설정을 하지 않았기 때문에


외부에서 인터넷을 통해 접근할 수 는 없고


오직 127.0.0.1 같은 로컬호스트로 접근할 수 있습니다. 





톰캣 다운로드


https://tomcat.apache.org/download-70.cgi


에서 버전별로 다운로드 할 수 있습니다.


우리는 윈도우 로컬 테스트 환경을 만들 것이므로 




zip파일을 다운 받도록 합시다. 




톰캣 설치


톰캣은 따로 설치가 필요 없습니다. 


윈도우 OS에서 그동안 어플리케이션을 설치해 왔다면 생소하시겠지만


이미 톰캣은 자체적으로 실행할 수 있는 JVM위에 어플리케이션 입니다.


다운받은 zip파일을 c:\ 에서 풀어주도록 합니다.


zip파일을 풀어준 것 만으로도 톰캣은 실행가능한 상태입니다.


{설치경로}\bin\startup.bat 를 실행해보면



Tomcat 모듈이 JVM에서 실행된 것을 보실 수 있습니다.


이제 브라우저에서 localhost:8080 (8080포트가 기본 톰캣 포트입니다.) 입력하시면


기본으로 세팅되어 있는 페이지가 호출이 됩니다.




웹어플리케이션 톰캣에 올리기



이제 기본으로 세팅되어 있는 톰캣 페이지 대신에


테스트 및 관리할 어플리케이션을 올려보겠습니다.


먼저 톰캣에 올릴 *.war파일이 필요합니다.



war파일이란 웹 어플리케이션을 압축해놓은 파일로


jsp,html,image 같은 여러 소스들을


정해진 계층에 따라 관리하는 정보를 포함하고 있으며


war에 묶여진 웹어플리케이션 소스를


톰캣이 규칙에 따라 압축을 해제하고 배포하여 사용합니다.




이클립스 같은 IDE에서 maven이나 gradle을 통해 war파일로 추출할 수 있습니다.


해당 프로젝트 폴더에서 mvn package를 실행하면


target폴더에 war파일이 생성됩니다.




이 생성된 war파일을 설치된 톰캣 폴더에 넣어줘야 합니다.



톰캣의 기본 war파일 경로는 webapp 폴더입니다.


해당 폴더에 ROOT.war라는 이름으로 war파일을 저장하시면 됩니다. 


물론 어플리케이션 이름이나 webapp 폴더의 경로는 바뀔 수 있습니다.


그러한 설정은 shell, bat 파일을 수정해야 하므로 여기서는 기본값으로 가져가 보겠습니다.




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
@echo off
rem Licensed to the Apache Software Foundation (ASF) under one or more
rem contributor license agreements.  See the NOTICE file distributed with
rem this work for additional information regarding copyright ownership.
rem The ASF licenses this file to You under the Apache License, Version 2.0
rem (the "License"); you may not use this file except in compliance with
rem the License.  You may obtain a copy of the License at
rem
rem     http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS,
rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
rem See the License for the specific language governing permissions and
rem limitations under the License.
 
rem ---------------------------------------------------------------------------
rem Start script for the CATALINA Server
rem ---------------------------------------------------------------------------
 
setlocal
 
rem Guess CATALINA_HOME if not defined
set "CURRENT_DIR=%cd%"
if not "%CATALINA_HOME%" == "" goto gotHome
set "CATALINA_HOME=%CURRENT_DIR%"
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
cd ..
set "CATALINA_HOME=%cd%"
cd "%CURRENT_DIR%"
:gotHome
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
:okHome
 
set "EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat"
 
rem Check that target executable exists
if exist "%EXECUTABLE%" goto okExec
echo Cannot find "%EXECUTABLE%"
echo This file is needed to run this program
goto end
:okExec
 
rem Get remaining unshifted command line arguments and save them in the
set CMD_LINE_ARGS=
:setArgs
if ""%1""=="""" goto doneSetArgs
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
shift
goto setArgs
:doneSetArgs
 
call "%EXECUTABLE%" start %CMD_LINE_ARGS%
 
:end
 
cs

startup.bat 파일입니다. 이파일을 수정하거나 , 또는 start_XXX.bat등으로 윈도우에서 톰캣설정을 커스텀마이징 할 수 있습니다.




톰캣 server.xml 설정 (conf)


올려진 war파일, 웹 어플리케이션은


데이터를 처리할 비지니스 로직을 담고 있습니다.


그리고 그 데이터들은 보통


특정 DB서버에 저장이 되어있습니다.


그러므로 톰캣은


그 특정 DB서버에 대한 연결 정보, 연결 driver등을 알고 있어야 합니다.


톰캣 lib 폴더에 jdbc driver jar파일을 저장합니다.




저는 altibase.jar와 mysql-connector-java-5.1.42-bin.jar파일을 저장하였습니다.



이제 서버의 각종 정보를 담은 server.xml을 수정하겠습니다.


 주로 어떤 Port를 통해 http연결을 주고 받을 것인지


 web.xml에 지정된 DB정보는 무엇인지


 admin 명령은 어떤 Port로 전달할 것인지 등등의 정보가 담겨져 있습니다.


 conf 폴더내에 저장을 합니다.






톰캣 구동하기




 이제 startup.bat를 실행해보면


 webapp안에 ROOT.war파일을 풀어


 톰캣위에 해당 웹 어플리케이션을 올립니다.


 localhost:8080을 통해 확인해보면


 어플리케이션이 잘 작동하는 것을 확인할 수 있습니다. 



Comments