Bereitstellung von WAR-Datei auf Tomcat
-
02-07-2019 - |
Frage
Gibt es eine Möglichkeit, eine bestimmte WAR-Datei auf Tomcat-Server zu implementieren? Ich möchte, dies zu tun, ohne die Web-Schnittstelle.
Lösung
Kopieren Sie einfach den Krieg-Datei in das $ TOMCAT_HOME / webapps / Verzeichnis. Tomcat wird die WAR-Datei, indem es automatisch explodiert es bereitstellen. FYI - Wenn Sie möchten, dass Sie Updates direkt auf das Explosions Verzeichnis machen, die für die Entwicklung nützlich ist
.Andere Tipps
Es gibt mehrere Möglichkeiten, einen Tomcat Webapp zu implementieren:
- Dropping in $ CATALINA_HOME / webapps, wie bereits erwähnt wurde.
- Arbeiten mit dem Build-Skripte automatisch über die Manager-Schnittstelle zu implementieren (das kommt mit Tomcat). Hier sind die beiden Möglichkeiten,
- für Maven : Die Kater-Plugin verwenden. Sie brauchen es nicht in
pom.xml
aufzunehmen, geben nur das Zielmvn tomcat:deploy
, ist das Plug-in Maven enthalten 2. Diese mehrere Ausfälle im Dokumentation , können Sie configure das Verhalten in derpom.xml
. Es gibt noch andere Ziele, die Sie als Explosions Archiv lassen bereitstellen etc . - für Ant : so etwas wie folgt aus:
- für Maven : Die Kater-Plugin verwenden. Sie brauchen es nicht 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>
Alle diese benötigen Sie eine Tomcat-Benutzerkonfiguration haben. Er lebt $CATALINA_BASE/conf/tomcat-users.xml
, aber da Sie wissen bereits, wie das Web-Interface zu verwenden, ich nehme an, Sie wissen, wie die Benutzer und Passwörter zu konfigurieren.
Wir haben nie das Web-Interface verwenden, es nicht mögen. Die Kriege sind in den webapps fallen gelassen und server.xml bearbeitet wie nötig. Sie müssen es auf die Beine, wenn Sie die server.xml bearbeiten, aber der Krieg Datei automatisch aufgenommen werden sollte. Wir löschen im Allgemeinen das Verzeichnis aus dem Krieg erweiterte zuerst so gibt es keine Verwirrung aus, wo die Komponenten kamen.
können Sie die conf / server.xml bearbeiten und einen Eintrag wie dieser zeigt auf Ihren Krieg Verzeichnis hinzufügen
<Context path="/strutsDisplayTag"
reloadable="true"
docBase="C:\work\learn\jsp\strutsDisplayTag"
workDir="C:\work\learn\jsp\strutsDisplayTag\work" />
ELSE Sie können Ihre .WAR-Datei in das Verzeichnis webapps von tomcat kopieren.
Die Tomcat Client Deployer Package , was Sie zu einem Remote-Server über die Befehlszeile implementieren sein müssen aussieht. Von der Seite:
Dies ist ein Paket, das verwendet werden kann, um zu validieren, zu kompilieren, zu .WAR komprimiert und Webanwendungen zur Produktion oder Entwicklung Tomcat-Server bereitstellen. Es soll beachtet werden, dass diese Funktion den Tomcat Manager verwendet und als solche das Ziel Tomcat-Server soll ausgeführt werden.
Sie können auch versuchen, diese Kommandozeilen-Skript für die Verwaltung von tomcat tomcat-Manager genannt. Es erfordert Python, und im Gespräch mit der Manager-Anwendung enthielt mit tomcat über HTTP. Sie können Dinge aus einem * nix-Shell wie:
$ tomcat-manager --user=admin --password=newenglandclamchowder \
> http://localhost:8080/manager/ stop /myapp
und
$ tomcat-manager --user=admin --password=newenglandclamchowder \
> http://localhost:8080/manager deploy /myapp ~/src/myapp/myapp.war