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:
OK, jetzt möchte ich es in einer Konfigurationsdatei im Tomcat {$ CATALINA_HOME} / conf / Verzeichnis überschreiben können. Wo / wie kann ich das machen ???
Entsprechend der Dokumentation des Kontextelements :
Kontextparameter
Sie können benannte Werte konfigurieren, die wird im Internet sichtbar gemacht Anwendung als Servletkontext Initialisierungsparameter durch Verschachtelung
%Vor%<Parameter>
Elemente in diesem Element. Zum Beispiel können Sie erstellen ein Initialisierungsparameter wie folgt:Dies entspricht der Aufnahme von das folgende Element im Web Anwendungsbereitstellungsdeskriptor (
%Vor%/WEB-INF/web.xml
):, 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 derserver.xml
-Datei zu speichern. Dies ist darauf zurückzuführen, dass die Konfiguration des Kontext dadurch invasiver wird Die Hauptdateiconf/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.
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
Tags und Links tomcat6