Definieren von Tomcat-Servlet-Kontextparametern

8

Szenario:

foo.war-Datei enthält einen Standardwert des Init-Parameters fooParam = 1.

Dies ist in foo.war!WEB_INF/web.xml definiert, das enthält:

%Vor%

OK, jetzt möchte ich es in einer Konfigurationsdatei im Tomcat {$ CATALINA_HOME} / conf / Verzeichnis überschreiben können. Wo / wie kann ich das machen ???

    
Jason S 26.10.2009, 17:10
quelle

2 Antworten

17

Entsprechend der Dokumentation des Kontextelements :

  

Kontextparameter

     

Sie können benannte Werte konfigurieren, die   wird im Internet sichtbar gemacht   Anwendung als Servletkontext   Initialisierungsparameter durch Verschachtelung    <Parameter> Elemente in diesem   Element. Zum Beispiel können Sie erstellen   ein Initialisierungsparameter wie folgt:

%Vor%      

Dies entspricht der Aufnahme von   das folgende Element im Web   Anwendungsbereitstellungsdeskriptor   ( /WEB-INF/web.xml ):

%Vor%      

, erfordert jedoch keine Änderung von   den zu personalisierenden Implementierungsdeskriptor   dieser Wert.

     

Die gültigen Attribute für a    <Parameter> element sind wie folgt:

     

...

Über das Attribut override eines <Parameter> lautet die Dokumentation:

  

Setzen Sie dies auf false , wenn Sie nicht möchten, dass ein <context-param> für den gleichen Parameternamen im Implementierungsdeskriptor der Webanwendung den hier angegebenen Wert überschreibt. Standardmäßig sind Überschreibungen erlaubt.

Wenn Sie es auf false setzen, sollte das der Fall sein. Das war der "Wie" -Teil.

Lesen Sie für den Teil "where" die Einführung von Der Kontextcontainer :

  

Für Tomcat 6 ist es im Gegensatz zu Tomcat 4.x NICHT empfehlenswert, <Context> -Elemente direkt in der server.xml -Datei zu speichern. Dies ist darauf zurückzuführen, dass die Konfiguration des Kontext dadurch invasiver wird Die Hauptdatei conf/server.xml kann nicht neu geladen werden, ohne Tomcat neu zu starten.

     

Kontext -Elemente können explizit definiert werden:

     
  • In der Datei $CATALINA_BASE/conf/context.xml : Die Informationen zum Kontextelement werden von allen Webapps geladen.
  •   
  • In der Datei $CATALINA_BASE/conf/[enginename]/[hostname]/context.xml.default : Die Informationen zum Kontextelement werden von allen Webapps dieses Hosts geladen.
  •   
  • In einzelnen Dateien (mit der Erweiterung ".xml") im Verzeichnis $CATALINA_BASE/conf/[enginename]/[hostname]/ . Der Name der Datei (mit Ausnahme der Erweiterung .xml) wird als Kontextpfad verwendet. Mehrstufige Kontextpfade können unter Verwendung von #, z.B. foo#bar.xml für einen Kontextpfad von /foo/bar . Die Standard-Webanwendung kann mithilfe einer Datei namens ROOT.xml definiert werden.
  •   
  • Nur wenn eine Kontextdatei für die Anwendung in $CATALINA_BASE/conf/[enginename]/[hostname]/ nicht existiert, in einer einzelnen Datei in /META-INF/context.xml in den Anwendungsdateien. Wenn die Webanwendung als WAR verpackt ist, wird /META-INF/context.xml nach $CATALINA_BASE/conf/[enginename]/[hostname]/ kopiert und umbenannt, um dem Kontextpfad der Anwendung zu entsprechen. Sobald diese Datei existiert, wird sie nicht ersetzt, wenn eine neue WAR mit einem neueren /META-INF/context.xml in der appBase des Hosts platziert wird.
  •   
  • Innerhalb eines Host-Elements in der Hauptdatei conf/server.xml .
  •   

Mit Ausnahme von server.xml können Dateien, die Kontext -Elemente definieren, nur ein einzelnes Kontext -Element definieren.

    
Pascal Thivent 26.10.2009, 17:36
quelle
0

Argh! Ich dachte, ich hätte das schon mal gefragt. Es ist manchmal wirklich schwierig, auf dieser Website zu suchen.

wo / wie Konfigurationsressourcen für Tomcat eingerichtet werden .war-Dateien

    
Jason S 26.10.2009 17:40
quelle

Tags und Links