Deployment der Webanwendung auf einem Tomcat Läuft

Ich würde gerne sammeln, einige best-practices bei der Bereitstellung einer web-Anwendung auf einem Tomcat läuft. Vor nicht langer Zeit hatte ich, um zu beschreiben das deployment-Prozesses unserer web-Anwendung und der Prozess schien eher verwirrend.

Sagen, wir haben eine Anwendung in einer war-Datei (foo.Krieg) richtig konfiguriert und benötigt keine zusätzliche Konfiguration. In diesem Fall wird der deployment-Prozess ist ziemlich einfach:

  • Kopieren Sie die foo.war-Datei $CATALINA_HOME/webapps Verzeichnis. Wenn die Anwendung korrekt gestartet wird, wird die Anwendung automatisch bereitstellen zu $CATALINA_HOME/webapps/foo-Verzeichnis.

Um die Bereitstellung der Anwendung:

  • Entfernen Sie die foo.war-Datei aus dem $CATALINA_HOME/webapps. Wenn die Anwendung entlädt richtig, es wird ausgeladen und die $CATALINA_HOME/webapps/foo entfernt werden.

Nun möchte ich diese überschreiben Kontext-Parameter in meiner Laufenden Anwendung. Nach dem Lesen der docs, alles, was ich tun müssen:

  1. Erstellen context.xml Datei namens foo.xml
  2. Kopieren Sie die Datei $CATALINA_BASE/conf/[enginename]/[hostname]/- Verzeichnis.

Leider, das hat nicht funktioniert: würde die Anwendung nicht neu starten. Empirisch fanden wir heraus, dass die einzige funktionierende Lösung ist, wenn die war-Datei bereitgestellt wird, an einen Ort außerhalb der $CATALINA_HOME/webapps.
Außerdem werden die default-Werte der konfigurierbare Kontext-Parameter in der war-Datei sollte angegeben werden, in der web.xml da context.xml in die war-Datei wird nicht gelesen, wenn es eine context.xml außerhalb.

Hier ist ein einfaches Beispiel der foo.xml:

<?xml version='1.0' encoding='utf-8'?>                           
<Context docBase="/path-to-deployment-directory/foo.war">
    <Parameter name="myparam" value="newvalue" override="false"/>
</Context>

Sicher, dass Sie überschreiben=false für den parameter, wenn Sie möchten die 'newvalue' zu überschreiben, wird der angegebene Wert in der Nachkriegszeit web.xml. Dies war offensichtlich nicht für uns.

So, das bereitstellen einer Anwendung auf einem Tomcat läuft:

  1. Erstellen context.xml Datei namens foo.xml
  2. Kopieren Sie die Datei $CATALINA_BASE/conf/[enginename]/[hostname]/- Verzeichnis.
  3. Kopieren Sie die foo.Krieg an der angegebenen Position in der docBase der foo.xml; die Anwendung wird automatisch bereitstellen.

Anwendung von neuen context-Parameter:

  • Fügen Sie die parameter-Werte der foo.xml und speichern Sie die Datei; die Anwendung erneut bereitstellen automatisch.

Um die Bereitstellung der Anwendung:

  • Entfernen foo.xml von den $CATALINA_BASE/conf/[enginename]/[hostname]/- Verzeichnis

Beachten Sie, dass das entfernen der foo.Krieg wird auch funktionieren, allerdings wird das entfernen foo.xml wie gut.


Inzwischen habe ich die folgenden Fragen:

  1. Ist es ein best-practice auf alle zum bereitstellen einer web-Anwendung ohne stoppen des tomcat? Ich habe gehört, eine Meinung, die Bereitstellung einer Laufenden tomcat ist nie gebraucht, da die Menschen führen Sie jede Anwendung in einem separaten tomcat.
  2. Ist es eine gute Idee zu kopieren war-Dateien nach $CATALINA_HOME/webapps oder Sie sollten besser werden in einem separaten Ort aufbewahrt?
  3. Wie kann ich die Konfiguration einer Applikation bereitgestellt $CATALINA_HOME/webapps
  4. Warum gibt es keine INFO-Zeile in der catalina.für die Bereitstellung einer Anwendung und es ist eine für deimplementierung? Ist es konfigurierbar?
InformationsquelleAutor newtover | 2009-02-24
Schreibe einen Kommentar