'webapp'에 해당되는 글 4건
- 2008/06/08 앤트(Ant)에서 톰캣에 웹 애플리케이션을 디플로이하는 방법..
- 2008/05/26 스프링(Spring)에서 Log4j 설정 파일 위치를 바꿔 보아요.
- 2008/05/26 웹 어플리케이션에서 jsp 파일의 직접 호출을 막아보아요.
- 2008/05/25 톰캣(Tomcat)의 컨텍스트(Context) 파일로 웹 어플리케이션을 추가해 보아요.
톰캣에 웹 애플리케이션을 디플로이하는 방법에는 두 가지가 있어요.
context 파일 내용은 대략 다음과 같아요.
첫번째 방법이 보통 많이 쓰이는 방법이죠. 저는 두번째 방법을 더 선호합니다만..
그런데 사실 한 가지 방법이 더 있습니다.
톰캣의 manager 어플리케이션을 이용하는 것입니다. ^-^/
톰캣의 manager 어플리케이션을 사용하려면 다음을 확인합니다.
1.톰캣에 manager 어플리케이션이 설치되어 있는지 확인한다.
(5.0, 5.5, 6.0 버전 모두 기본적으로 설치되어 있네요..)
2. manager 권한이 있는 사용자를 등록한다.
${톰캣_설치_경로}\conf\tomcat-users.xml 파일에 다음 내용을 추가합니다.
3. 서버를 띄우고 http://localhost:8080/manager/html 로 접속합니다.
(등록한 사용자의 아이디/암호를 입력합니다.)
다음과 같은 화면에서 Deploy를 실행하면 됩니다.
Context 파일 내용을 설정하거나 war 파일을 업로드해서 디플로이할 수 있습니다.
그리고 매니저에서는 다른 웹 애플리케이션을 실행/중지/리로드/언디플로이할 수 있어요~
이제부터 본론으로 들어갑니다.
제가 말씀드릴 앤트로 톰캣에 웹 애플리케이션을 디플로이하는 방법은 내부적으로 톰캣의 manager 애플리케이션을 이용합니다. 그러므로 먼저 톰캣의 manager 애플리케이션이 설정이 되어있어야 해요~!
빌드 파일에서 사용할 프로퍼티 파일은 다음과 같습니다. (sample 어플리케이션을 배포한다고 가정합니다.)
그리고 태스크 정의 파일이 필요합니다. 다음과 같은 내용으로 catalina.tasks 라는 파일을 만듭니다.
또 어플리케이션 컨텍스트 설정 파일이 필요합니다. 다음과 같은 내용으로 sample.xml 이라는 파일을 만듭니다.
마지막으로 빌드 파일 내용은 다음과 같습니다.
먼저 태스크 정의 파일을 설정해야 합니다.
그러면 다음과 같은 태스크들을 사용할 수 있어요.
디플로이 태스크를 자세히 살펴보죠.
config 속성에 애플리케이션의 컨텍스트 설정 파일의 위치를 입력하는데요..
config 속성 대신에 war 속성을 써서 애플리케이션 war 파일의 위치를 입력할 수도 있어요.
두 속성은 반드시 어느 하나만 써야해요. 안 그러면 에러날 걸~?
톰캣의 앤트태스크를 이용하면 애플리케이션을 디플로이하는 것 뿐만 아니라 웹 어플리케이션의 목록을 보는 것, 애플리케이션을 실행하거나 중지하는 것 등등의 작업을 앤트로 할 수가 있어요. 이게 다 톰캣 개발자들이 앤트 태스크를 쓰기 좋게 만들어둔 덕분이죠. 감사감사 ^^*
보면 볼수록 앤트는 멋진 것 같아요.
- ${톰캣_설치_경로}1/webapps 디렉토리에 war 파일을 추가한다.
- ${톰캣_설치_경로}/conf/Catalina/localhost 디렉토리에 context 파일을 추가한다.
context 파일 내용은 대략 다음과 같아요.
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/${웹애플리케이션_이름}" docBase="${웹애플리케이션_디렉토리}" reloadable="true">
</Context>
<Context path="/${웹애플리케이션_이름}" docBase="${웹애플리케이션_디렉토리}" reloadable="true">
</Context>
첫번째 방법이 보통 많이 쓰이는 방법이죠. 저는 두번째 방법을 더 선호합니다만..
그런데 사실 한 가지 방법이 더 있습니다.
톰캣의 manager 어플리케이션을 이용하는 것입니다. ^-^/
톰캣의 manager 어플리케이션을 사용하려면 다음을 확인합니다.
1.톰캣에 manager 어플리케이션이 설치되어 있는지 확인한다.
(5.0, 5.5, 6.0 버전 모두 기본적으로 설치되어 있네요..)
2. manager 권한이 있는 사용자를 등록한다.
${톰캣_설치_경로}\conf\tomcat-users.xml 파일에 다음 내용을 추가합니다.
<role rolename="manager"/>
<user username="${사용자_아이디}" password="${사용자_암호}" roles="manager"/>
<user username="${사용자_아이디}" password="${사용자_암호}" roles="manager"/>
3. 서버를 띄우고 http://localhost:8080/manager/html 로 접속합니다.
(등록한 사용자의 아이디/암호를 입력합니다.)
다음과 같은 화면에서 Deploy를 실행하면 됩니다.
Context 파일 내용을 설정하거나 war 파일을 업로드해서 디플로이할 수 있습니다.
그리고 매니저에서는 다른 웹 애플리케이션을 실행/중지/리로드/언디플로이할 수 있어요~
이제부터 본론으로 들어갑니다.
제가 말씀드릴 앤트로 톰캣에 웹 애플리케이션을 디플로이하는 방법은 내부적으로 톰캣의 manager 애플리케이션을 이용합니다. 그러므로 먼저 톰캣의 manager 애플리케이션이 설정이 되어있어야 해요~!
빌드 파일에서 사용할 프로퍼티 파일은 다음과 같습니다. (sample 어플리케이션을 배포한다고 가정합니다.)
# catalina home directory
catalina.home=C:\Tomcat2
catalina.ant.jar=${catalina.home}/server/lib/catalina-ant.jar
catalina.tasks.file=catalina.tasks3
# catalina manager configurations
catalina.manager.url=http://localhost:8080/manager
catalina.manager.user.name=test4
catalina.manager.user.password=test
# application configurations
application.path=/sample5
application.context=sample.xml6
catalina.home=C:\Tomcat2
catalina.ant.jar=${catalina.home}/server/lib/catalina-ant.jar
catalina.tasks.file=catalina.tasks3
# catalina manager configurations
catalina.manager.url=http://localhost:8080/manager
catalina.manager.user.name=test4
catalina.manager.user.password=test
# application configurations
application.path=/sample5
application.context=sample.xml6
그리고 태스크 정의 파일이 필요합니다. 다음과 같은 내용으로 catalina.tasks 라는 파일을 만듭니다.
# catalina tasks properties
deploy=org.apache.catalina.ant.DeployTask
undeploy=org.apache.catalina.ant.UndeployTask
start=org.apache.catalina.ant.StartTask
reload=org.apache.catalina.ant.ReloadTask
stop=org.apache.catalina.ant.StopTask
sessions=org.apache.catalina.ant.SessionsTask
list=org.apache.catalina.ant.ListTask
serverinfo=org.apache.catalina.ant.ServerinfoTask
roles=org.apache.catalina.ant.RolesTask
resources=org.apache.catalina.ant.ResourcesTask
deploy=org.apache.catalina.ant.DeployTask
undeploy=org.apache.catalina.ant.UndeployTask
start=org.apache.catalina.ant.StartTask
reload=org.apache.catalina.ant.ReloadTask
stop=org.apache.catalina.ant.StopTask
sessions=org.apache.catalina.ant.SessionsTask
list=org.apache.catalina.ant.ListTask
serverinfo=org.apache.catalina.ant.ServerinfoTask
roles=org.apache.catalina.ant.RolesTask
resources=org.apache.catalina.ant.ResourcesTask
또 어플리케이션 컨텍스트 설정 파일이 필요합니다. 다음과 같은 내용으로 sample.xml 이라는 파일을 만듭니다.
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/sample" docBase="C:\Sample7" debug="0" privileged="true" reloadable="true">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost.sample." suffix=".txt" timestamp="true" />
</Context>
<Context path="/sample" docBase="C:\Sample7" debug="0" privileged="true" reloadable="true">
<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost.sample." suffix=".txt" timestamp="true" />
</Context>
마지막으로 빌드 파일 내용은 다음과 같습니다.
먼저 태스크 정의 파일을 설정해야 합니다.
<taskdef file="catalina.tasks" classpath="${catalina.ant.jar}" />
그러면 다음과 같은 태스크들을 사용할 수 있어요.
<target name="catalina.deploy" description="Deploy web application">
<deploy url="${catalina.manager.url}" username="${catalina.manager.user.name}" password="${catalina.manager.user.password}" path="${application.path}" config="${application.context}" update="true" />
</target>
<target name="catalina.undeploy" description="Undeploy web application">
<undeploy url="${catalina.manager.url}" username="${catalina.manager.user.name}" password="${catalina.manager.user.password}" path="${application.path}" />
</target>
<target name="catalina.start" description="Start web application">
<start url="${catalina.manager.url}" username="${catalina.manager.user.name}" password="${catalina.manager.user.password}" path="${application.path}" />
</target>
<target name="catalina.reload" description="Reload web application">
<reload url="${catalina.manager.url}" username="${catalina.manager.user.name}" password="${catalina.manager.user.password}" path="${application.path}" />
</target>
<target name="catalina.stop" description="Stop web application">
<stop url="${catalina.manager.url}" username="${catalina.manager.user.name}" password="${catalina.manager.user.password}" path="${application.path}" />
</target>
<target name="catalina.sessions" description="View server information">
<sessions url="${catalina.manager.url}" username="${catalina.manager.user.name}" password="${catalina.manager.user.password}" path="${application.path}" />
</target>
<target name="catalina.list" description="List web applications">
<list url="${catalina.manager.url}" username="${catalina.manager.user.name}" password="${catalina.manager.user.password}" />
</target>
<target name="catalina.serverinfo" description="View server information">
<serverinfo url="${catalina.manager.url}" username="${catalina.manager.user.name}" password="${catalina.manager.user.password}" />
</target>
<target name="catalina.roles" description="View server information">
<roles url="${catalina.manager.url}" username="${catalina.manager.user.name}" password="${catalina.manager.user.password}" />
</target>
<target name="catalina.resources" description="View server information">
<resources url="${catalina.manager.url}" username="${catalina.manager.user.name}" password="${catalina.manager.user.password}" />
</target>
<deploy url="${catalina.manager.url}" username="${catalina.manager.user.name}" password="${catalina.manager.user.password}" path="${application.path}" config="${application.context}" update="true" />
</target>
<target name="catalina.undeploy" description="Undeploy web application">
<undeploy url="${catalina.manager.url}" username="${catalina.manager.user.name}" password="${catalina.manager.user.password}" path="${application.path}" />
</target>
<target name="catalina.start" description="Start web application">
<start url="${catalina.manager.url}" username="${catalina.manager.user.name}" password="${catalina.manager.user.password}" path="${application.path}" />
</target>
<target name="catalina.reload" description="Reload web application">
<reload url="${catalina.manager.url}" username="${catalina.manager.user.name}" password="${catalina.manager.user.password}" path="${application.path}" />
</target>
<target name="catalina.stop" description="Stop web application">
<stop url="${catalina.manager.url}" username="${catalina.manager.user.name}" password="${catalina.manager.user.password}" path="${application.path}" />
</target>
<target name="catalina.sessions" description="View server information">
<sessions url="${catalina.manager.url}" username="${catalina.manager.user.name}" password="${catalina.manager.user.password}" path="${application.path}" />
</target>
<target name="catalina.list" description="List web applications">
<list url="${catalina.manager.url}" username="${catalina.manager.user.name}" password="${catalina.manager.user.password}" />
</target>
<target name="catalina.serverinfo" description="View server information">
<serverinfo url="${catalina.manager.url}" username="${catalina.manager.user.name}" password="${catalina.manager.user.password}" />
</target>
<target name="catalina.roles" description="View server information">
<roles url="${catalina.manager.url}" username="${catalina.manager.user.name}" password="${catalina.manager.user.password}" />
</target>
<target name="catalina.resources" description="View server information">
<resources url="${catalina.manager.url}" username="${catalina.manager.user.name}" password="${catalina.manager.user.password}" />
</target>
디플로이 태스크를 자세히 살펴보죠.
<deploy
url="${catalina.manager.url}" username="${catalina.manager.user.name}"
password="${catalina.manager.user.password}" path="${application.path}"
config="${application.context}" update="true" />
config 속성에 애플리케이션의 컨텍스트 설정 파일의 위치를 입력하는데요..
config 속성 대신에 war 속성을 써서 애플리케이션 war 파일의 위치를 입력할 수도 있어요.
두 속성은 반드시 어느 하나만 써야해요. 안 그러면 에러날 걸~?
톰캣의 앤트태스크를 이용하면 애플리케이션을 디플로이하는 것 뿐만 아니라 웹 어플리케이션의 목록을 보는 것, 애플리케이션을 실행하거나 중지하는 것 등등의 작업을 앤트로 할 수가 있어요. 이게 다 톰캣 개발자들이 앤트 태스크를 쓰기 좋게 만들어둔 덕분이죠. 감사감사 ^^*
보면 볼수록 앤트는 멋진 것 같아요.
환경:
Tomcat 5.0 or 5.5
Ant 1.7.0
'개발 > 자동화' 카테고리의 다른 글
| 메이븐(Maven) 시작하기 (2/3) (4) | 2009/10/09 |
|---|---|
| 메이븐(Maven) 시작하기 (1/3) (0) | 2009/10/09 |
| 앤트(Ant)에서 톰캣에 웹 애플리케이션을 디플로이하는 방법.. (0) | 2008/06/08 |
| 앤트(Ant)에서 톰캣을 실행/중지해 보아요. (4) | 2008/06/08 |
| 앤트(Ant)의 프로퍼티 파일(.properties)의 제한에 대해서.. (0) | 2008/06/08 |
| 앤트(Ant)에서 사용자별로 다른 프로퍼티 파일을 읽어들이도록 해보아요. (0) | 2008/06/04 |
스프링(Spring)에서는 Log4j 설정 파일(log4j.properties)을 임의의 파일로 지정할 수 있어요.
웹 어플리케이션이라면 다음과 같이 하면 돼요.
web.xml <web-app> 의 적당한 부분(DTD 혹은 스키마에 의거하여)에 다음 내용을 넣어주면 돼요.
웹 어플리케이션이라면 다음과 같이 하면 돼요.
web.xml <web-app> 의 적당한 부분(DTD 혹은 스키마에 의거하여)에 다음 내용을 넣어주면 돼요.
<context-param> <param-name>log4jConfigLocation</param-name> <param-value>/WEB-INF/config/log4j.properties</param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener>
환경:
Servlet 2.3, 2.4
Spring 1.x, 2.0, 2.5
Servlet 2.3, 2.4
Spring 1.x, 2.0, 2.5
'개발 > 스프링' 카테고리의 다른 글
| 스프링(Spring)으로 스태틱(static) 멤버 변수를 설정해 보아요. (0) | 2008/05/26 |
|---|---|
| 스프링(Spring)에서 프로퍼티 파일(.properties)을 사용해 보아요. (0) | 2008/05/26 |
| 스프링(Spring)에서 Log4j 설정 파일 위치를 바꿔 보아요. (0) | 2008/05/26 |
한 가지 방법으로는 WEB-INF 밑에 jsp 파일을 두는 것인데요..
그 방법이 여의치 않을 때 사용할 수 있는 방법이 있어요.
web.xml <web-app> 의 적당한 부분(DTD 혹은 스키마에 의거하여)에 다음 내용을 넣어주면 돼요.
그 방법이 여의치 않을 때 사용할 수 있는 방법이 있어요.
web.xml <web-app> 의 적당한 부분(DTD 혹은 스키마에 의거하여)에 다음 내용을 넣어주면 돼요.
<security-constraint> <web-resource-collection> <web-resource-name>no_access</web-resource-name> <url-pattern>*.jsp</url-pattern> </web-resource-collection> </security-constraint>
환경:
Servlet 2.3 혹은 Servlet 2.4
Servlet 2.3 혹은 Servlet 2.4
'개발 > 기타' 카테고리의 다른 글
| 아이바티스(iBatis)에서 자동 증가하는 필드를 사용해 보아요. (0) | 2008/05/26 |
|---|---|
| 오라클(Oracle)에서 삭제된 오브젝트들이 아직 남아있다면.. (0) | 2008/05/26 |
| 웹 어플리케이션에서 jsp 파일의 직접 호출을 막아보아요. (0) | 2008/05/26 |
| 톰캣(Tomcat)의 컨텍스트(Context) 파일로 웹 어플리케이션을 추가해 보아요. (0) | 2008/05/25 |
| Axis WSDD 레퍼런스 (0) | 2008/05/25 |
| 웹 페이지를 자동으로 리프레시하게 해보아요. (0) | 2008/05/25 |
${CATALINA_HOME}/conf/Catalina/localhost 에 다음과 같은 내용의 XML 파일을 추가하면 웹 어플리케이션이 설치가 돼요.
예를 들면, 다음과 같이 할 수 있어요.
<context path="/WEB_APP_PATH" docbase="WEB_APP_DIRECTORY" debug="0" privileged="true" reloadable="true" workdir="WORK_DIRECTORY"> <logger classname="org.apache.catalina.logger.FileLogger" prefix="LOG_FILE_PREFIX" suffix="LOG_FILE_SUFFIX" timestamp="true" /> </context>
realodable : WEB-INF 내용이 바뀌었을 때 자동으로 reload 하는 옵션
workDir : jsp 등의 파일이 컴파일되는 작업 디렉토리 지정
workDir : jsp 등의 파일이 컴파일되는 작업 디렉토리 지정
예를 들면, 다음과 같이 할 수 있어요.
<context path="/test" docbase="D:\Project\Test\Deploy" debug="0" privileged="true" reloadable="true" workdir="D:\Project\Test\Work"> <logger classname="org.apache.catalina.logger.FileLogger" prefix="localhost.test." suffix=".log" timestamp="true" /> </context>
환경:
Apache Tomcat 5.0
Apache Tomcat 5.0
'개발 > 기타' 카테고리의 다른 글
| 오라클(Oracle)에서 삭제된 오브젝트들이 아직 남아있다면.. (0) | 2008/05/26 |
|---|---|
| 웹 어플리케이션에서 jsp 파일의 직접 호출을 막아보아요. (0) | 2008/05/26 |
| 톰캣(Tomcat)의 컨텍스트(Context) 파일로 웹 어플리케이션을 추가해 보아요. (0) | 2008/05/25 |
| Axis WSDD 레퍼런스 (0) | 2008/05/25 |
| 웹 페이지를 자동으로 리프레시하게 해보아요. (0) | 2008/05/25 |
| 익셉션(exception) 처리 전략에 대하여.. (0) | 2008/05/25 |

Prev
RSS FEED
