Distribuzione del file di guerra su Tomcat
-
02-07-2019 - |
Domanda
Esiste un modo per distribuire un determinato file di guerra sul server Tomcat? Voglio farlo senza usare l'interfaccia web.
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'obiettivomvn tomcat: deploy
, il plug-in è incluso in Maven 2. Questo presuppone che diversi valori predefiniti siano spiegati in la documentazione , puoi configura il comportamento nelpom.xml
. Esistono altri obiettivi che consentono di distribuire come un archivio esploso ecc. . - per Ant : qualcosa del genere:
- per Maven : usa il plugin tomcat. Non è necessario includerlo in
<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