Tomcat에 전쟁 파일 배치
-
02-07-2019 - |
문제
Tomcat 서버에 주어진 전쟁 파일을 배포하는 방법이 있습니까? 웹 인터페이스를 사용하지 않고이 작업을 수행하고 싶습니다.
해결책
전쟁 파일을 $ tomcat_home/ webapps/ directory에 복사하기 만하면됩니다. Tomcat은 자동으로 폭발하여 전쟁 파일을 배포합니다. 참고 - 원한다면 폭발 된 디렉토리로 직접 업데이트 할 수 있습니다.이 디렉토리는 개발에 유용합니다.
다른 팁
Tomcat WebApp을 배포하는 몇 가지 방법이 있습니다.
- 이미 언급 된대로 $ catalina_home/webapps로 떨어집니다.
- 빌드 스크립트를 사용하여 관리자 인터페이스 (Tomcat과 함께 제공)를 통해 자동으로 배포합니다. 두 가지 방법이 있습니다
<property name="manager.url" value="http://localhost:8080/manager"/> <property name="manager.username" value="manager"/> <property name="manager.password" value="foobar"/> <!-- Task definitions --> <taskdef name="deploy" classname="org.apache.catalina.ant.DeployTask"/> <taskdef name="list" classname="org.apache.catalina.ant.ListTask"/> <taskdef name="reload" classname="org.apache.catalina.ant.ReloadTask"/> <taskdef name="undeploy" classname="org.apache.catalina.ant.UndeployTask"/> <!-- goals --> <target name="install" depends="compile" description="Install application to servlet container"> <deploy url="${manager.url}" username="${manager.username}" password="${manager.password}" path="${app.path}" localWar="file://${build.home}"/> </target> <target name="list" description="List installed applications on servlet container"> <list url="${manager.url}" username="${manager.username}" password="${manager.password}"/> </target> <target name="reload" depends="compile" description="Reload application on servlet container"> <reload url="${manager.url}" username="${manager.username}" password="${manager.password}" path="${app.path}"/> </target> <target name="remove" description="Remove application on servlet container"> <undeploy url="${manager.url}" username="${manager.username}" password="${manager.password}" path="${app.path}"/> </target>
이들은 모두 Tomcat 사용자 구성을 요구합니다. 그것은 산다 $CATALINA_BASE/conf/tomcat-users.xml
, 그러나 웹 인터페이스를 사용하는 방법을 이미 알고 있으므로 사용자와 비밀번호를 구성하는 방법을 알고 있다고 가정합니다.
우리는 웹 인터페이스를 사용하지 않고 마음에 들지 않습니다. WebApps and Server.xml은 필요에 따라 전쟁이 중단됩니다. Server.xml을 편집하면 바운스해야하지만 전쟁 파일을 자동으로 선택해야합니다. 우리는 일반적으로 전쟁에서 먼저 확장 된 디렉토리를 삭제하므로 구성 요소가 온 곳에서 혼란이 없습니다.
conf/server.xml을 편집하고 전쟁 디렉토리를 가리키는 항목을 추가 할 수 있습니다.
<Context path="/strutsDisplayTag"
reloadable="true"
docBase="C:\work\learn\jsp\strutsDisplayTag"
workDir="C:\work\learn\jsp\strutsDisplayTag\work" />
그렇지 않으면 .war 파일을 Tomcat의 WebApps 디렉토리에 복사 할 수 있습니다.
Tomcat 클라이언트 배치자 패키지 명령 줄에서 원격 서버에 배포하는 데 필요한 것 같습니다. 페이지에서 :
이 패키지는 제작 또는 개발 Tomcat 서버에 웹 애플리케이션을 검증, 컴파일, 압축 및 배포하는 데 사용할 수있는 패키지입니다. 이 기능은 Tomcat Manager를 사용하므로 대상 Tomcat 서버가 실행되어야합니다.
당신은 또한 이것을 시도 할 수 있습니다 Tomcat 관리를위한 명령 줄 스크립트 Tomcat-Manager라고합니다. Python이 필요하며 HTTP를 통해 Tomcat에 포함 된 관리자 응용 프로그램과 대화합니다. 당신은 다음과 같은 a *nix 쉘에서 일을 할 수 있습니다.
$ tomcat-manager --user=admin --password=newenglandclamchowder \
> http://localhost:8080/manager/ stop /myapp
그리고:
$ tomcat-manager --user=admin --password=newenglandclamchowder \
> http://localhost:8080/manager deploy /myapp ~/src/myapp/myapp.war