문제

Tomcat 서버에 주어진 전쟁 파일을 배포하는 방법이 있습니까? 웹 인터페이스를 사용하지 않고이 작업을 수행하고 싶습니다.

도움이 되었습니까?

해결책

전쟁 파일을 $ tomcat_home/ webapps/ directory에 복사하기 만하면됩니다. Tomcat은 자동으로 폭발하여 전쟁 파일을 배포합니다. 참고 - 원한다면 폭발 된 디렉토리로 직접 업데이트 할 수 있습니다.이 디렉토리는 개발에 유용합니다.

다른 팁

Tomcat WebApp을 배포하는 몇 가지 방법이 있습니다.

  • 이미 언급 된대로 $ catalina_home/webapps로 떨어집니다.
  • 빌드 스크립트를 사용하여 관리자 인터페이스 (Tomcat과 함께 제공)를 통해 자동으로 배포합니다. 두 가지 방법이 있습니다
    • ~을 위한 Maven: Tomcat 플러그인을 사용하십시오. 당신은 그것을 포함시킬 필요가 없습니다 pom.xml, 그냥 목표를 발행하십시오 mvn tomcat:deploy, 플러그인은 Maven 2에 포함되어 있습니다. 이것은 몇 가지 기본값이 선적 서류 비치, 당신은 할 수 있습니다 구성 의 행동 pom.xml. 폭발 아카이브로 배포 할 수있는 다른 목표가 있습니다. .
    • ~을 위한 개미: 이 같은:
    <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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top