Pregunta

¿Hay alguna forma de implementar un archivo de guerra dado en el servidor Tomcat? Quiero hacer esto sin usar la interfaz web.

¿Fue útil?

Solución

Simplemente copie el archivo war en el directorio $ TOMCAT_HOME / webapps /. Tomcat desplegará el archivo de guerra explotándolo automáticamente. Para su información: si lo desea, puede realizar actualizaciones directamente en el directorio explotado, lo cual es útil para el desarrollo.

Otros consejos

Hay varias formas de implementar una aplicación web de Tomcat:

  • Ingresando a $ CATALINA_HOME / webapps, como ya se mencionó.
  • Usar sus scripts de compilación para implementarse automáticamente a través de la interfaz del administrador (que viene con Tomcat). Aquí están las dos maneras
    • para Maven : use el complemento tomcat. No es necesario que lo incluya en pom.xml , solo emita el objetivo mvn tomcat: deploy , el complemento está incluido en Maven 2. Esto asume varios valores predeterminados explicados en La documentación , puede configure el comportamiento en pom.xml . Hay otros objetivos que le permiten implementarlo como un archivo explosionado etc .
    • para Ant : algo como esto:
    <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 ellos requerirán que tengas una configuración de usuario Tomcat. Vive $ CATALINA_BASE / conf / tomcat-users.xml , pero como ya sabes cómo usar la interfaz web, asumo que sabes cómo configurar los usuarios y las contraseñas.

Nunca usamos la interfaz web, no me gusta. Las guerras se eliminan en las aplicaciones web y server.xml editados según sea necesario. Debe modificarlo si edita el archivo server.xml, pero el archivo war debe recogerse automáticamente. En general, primero eliminamos el directorio expandido de la guerra para que no haya confusión de dónde provienen los componentes.

puedes editar el archivo conf / server.xml y agregar una entrada como esta apuntando a tu directorio de guerra

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

ELSE  puede copiar su archivo .WAR en el directorio webapps de tomcat.

El Tomcat El paquete Client Deployer Package parece ser lo que necesita implementar en un servidor remoto desde la línea de comandos. Desde la página:

  

Este es un paquete que se puede usar para validar, compilar, comprimir a .WAR e implementar aplicaciones web en servidores Tomcat de producción o desarrollo. Debe tenerse en cuenta que esta función utiliza el Administrador de Tomcat y, como tal, el servidor Tomcat de destino debería estar ejecutándose.

También puedes probar esto script de línea de comandos para administrar tomcat llamado tomcat-manager. Requiere Python, y habla con la aplicación de administrador incluida con Tomcat a través de HTTP. Puedes hacer cosas desde un shell * nix como:

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

y:

$ tomcat-manager --user=admin --password=newenglandclamchowder \
> http://localhost:8080/manager deploy /myapp ~/src/myapp/myapp.war
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top