Pergunta

Existe uma maneira de implantar um determinado arquivo de guerra no servidor Tomcat? Eu quero fazer isso sem usar a interface web.

Foi útil?

Solução

copiar

Apenas o arquivo de guerra no $ TOMCAT_HOME / webapps /. Tomcat irá implantar o arquivo de guerra por explodir-lo automaticamente. FYI -. Se você quiser, pode fazer atualizações diretamente para o diretório explodiu, o que é útil para o desenvolvimento

Outras dicas

Existem várias maneiras de implantar um webapp Tomcat:

  • Dropping em $ CATALINA_HOME / webapps, como foi já mencionado.
  • Usando os scripts de construção para implantar automaticamente através da interface gerente (que vem com o Tomcat). Aqui estão as duas maneiras
    • para Maven : usar o plugin tomcat. Você não precisa incluí-lo em pom.xml, apenas emitir o mvn tomcat:deploy objetivo, o plugin está incluído na Maven 2. Isso pressupõe vários padrões explicado no documentação , você pode configure o comportamento na pom.xml. Há outros objetivos que permitem implantar como um arquivo explodiu etc .
    • para Ant : algo como isto:
    <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>

Todos aqueles que exigem que você tenha uma configuração de usuário Tomcat. Vive $CATALINA_BASE/conf/tomcat-users.xml, mas desde que você já sabe como usar a interface web, eu suponho que você sabe como configurar os usuários e senhas.

Nós nunca usar a interface web, não gosto disso. As guerras são descartados nos webapps e server.xml editado como necessário. Você precisa saltar-lo se você editar o server.xml, mas o arquivo de guerra deve ser pego automagicamente. Em geral, excluir o diretório expandido a partir da primeira guerra para que não haja confusão de onde os componentes vieram.

Você pode editar o conf / server.xml e adicione uma entrada como esta apontando para seu diretório guerra

    <Context path="/strutsDisplayTag" 
        reloadable="true" 
        docBase="C:\work\learn\jsp\strutsDisplayTag" 
        workDir="C:\work\learn\jsp\strutsDisplayTag\work" />

MAIS você pode copiar o arquivo .WAR para o diretório webapps do tomcat.

O Tomcat Pacote Deployer cliente parece ser o que você precisa instalar em um servidor remoto a partir da linha de comando. A partir da página:

Este é um pacote que pode ser usado para validar, compilação, compressa para .WAR e aplicações Web Deploy a produção ou desenvolvimento Tomcat servidores. Deve-se notar que esse recurso usa o Tomcat Manager e, como tal, o alvo Tomcat servidor deve estar em execução.

Você também pode tentar este script de linha de comando para gerenciar tomcat chamado tomcat-gerente. Ele requer Python, e fala com a aplicação Gestor incluído no tomcat via HTTP. Você pode fazer coisas a partir de um shell * nix como:

$ tomcat-manager --user=admin --password=newenglandclamchowder \
> http://localhost:8080/manager/ stop /myapp

e

$ tomcat-manager --user=admin --password=newenglandclamchowder \
> http://localhost:8080/manager deploy /myapp ~/src/myapp/myapp.war
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top