Domanda

Esiste un modo per distribuire un determinato file di guerra sul server Tomcat? Voglio farlo senza usare l'interfaccia web.

È stato utile?

Soluzione

Basta copiare il file di guerra nella directory $ TOMCAT_HOME / webapps /. Tomcat distribuirà il file di guerra esplodendolo automaticamente. Cordiali saluti - Se lo desideri, puoi effettuare aggiornamenti direttamente nella directory esplosa, utile per lo sviluppo.

Altri suggerimenti

Esistono diversi modi per distribuire un'app Web Tomcat:

  • Rilascio in $ CATALINA_HOME / webapps, come già accennato.
  • Utilizzo degli script di build per la distribuzione automatica tramite l'interfaccia del gestore (fornita con Tomcat). Ecco i due modi
    • per Maven : usa il plugin tomcat. Non è necessario includerlo in pom.xml , basta pubblicare l'obiettivo mvn tomcat: deploy , il plug-in è incluso in Maven 2. Questo presuppone che diversi valori predefiniti siano spiegati in la documentazione , puoi configura il comportamento nel pom.xml . Esistono altri obiettivi che consentono di distribuire come un archivio esploso ecc. .
    • per Ant : qualcosa del genere:
    <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>

Tutti questi richiedono la configurazione dell'utente Tomcat. Vive $ CATALINA_BASE / conf / tomcat-users.xml , ma poiché sai già come utilizzare l'interfaccia web, presumo che tu sappia come configurare gli utenti e le password.

Non usiamo mai l'interfaccia web, non mi piace. Le guerre vengono rilasciate in webapps e server.xml modificate se necessario. È necessario rimbalzarlo se si modifica server.xml, ma il file di guerra dovrebbe essere raccolto automaticamente. Generalmente eliminiamo prima la directory espansa dalla guerra, quindi non c'è confusione da dove provengono i componenti.

puoi modificare conf / server.xml e aggiungere una voce come questa che punta alla tua directory di guerra

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

ELSE  puoi copiare il tuo file .WAR nella directory webapps di tomcat.

The Tomcat Pacchetto client Deployer sembra essere ciò che è necessario distribuire su un server remoto dalla riga di comando. Dalla pagina:

  

Questo è un pacchetto che può essere utilizzato per convalidare, compilare, comprimere in .WAR e distribuire applicazioni Web su server Tomcat di produzione o sviluppo. Va notato che questa funzione utilizza Tomcat Manager e come tale dovrebbe essere in esecuzione il server Tomcat di destinazione.

Puoi anche provare questo script da riga di comando per la gestione di tomcat chiamato tomcat-manager. Richiede Python e comunica con l'applicazione manager inclusa in Tomcat tramite HTTP. Puoi fare cose da una shell * nix come:

$ 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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top