Gibt es eine Möglichkeit, einen relativen Pfad zum Attribut docBase in der Datei context.xml einer Webanwendung festzulegen, also außerhalb des Verzeichnisses appBase der Tomcat-Serverinstanz?Relativer Pfad in Context.xml
Ich möchte in der Lage sein, die Kontextkonfiguration zwischen Computern zu teilen und die App in einem Verzeichnis, nicht eine Kriegsdatei leben. Auf diese Weise kann ich die Klassen direkt in dieses Verzeichnis (in meinem Projektentwicklungsverzeichnis) kompilieren und Tomcat diese Klassen verwenden, ohne dass ein Kopieren/Packen erforderlich ist.
Ich benutze den Tomcat 8.0.0-RC5. Meine Auswahl Das Layout ist:
/home/david/projects/frontend/web-content <-- the static html files
/home/david/projects/frontend/web-content/WEB-INF <-- the WEB-INF with the web.xml
/home/david/projects/tomcat <-- tomcat base directory
/home/david/projects/tomcat/Catalina/localhost <-- holds the frontend.xml context configuration
Ich habe versucht,
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/frontend" docBase="../../frontend/web-content">
</Context>
aber das hat nicht funktioniert. Der gesamte Pfad vor/Web-Content scheint ignoriert zu werden. Das Protokoll sagt:
The main resource set specified [/home/david/projects/tomcat/webapps/web-content] is not valid
Die Tomcat 8 documentation für den Kontext Container sagt:
Sie können einen absoluten Pfad für dieses Verzeichnis oder WAR-Datei angeben oder einen Pfadnamen, die mit dem appBase Verzeichnis der relativ Eigentümer des Hosts.
Bedeutet relativ hier ein striktes Unterverzeichnis von appBase (no .. erlaubt)?
Das Einstellen eines absoluten Pfads funktioniert ohne Probleme. Die Konfiguration
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/frontend" docBase="/home/david/projects/frontend/web-content">
</Context>
funktioniert, aber es ist spezifisch für meinen Computer. Daher kann ich die Kontextkonfiguration nicht mehr ohne Änderungen teilen.
Ich könnte einen symbolischen Link innerhalb des appBase-Verzeichnisses des Tomcat-Servers erstellen und auf den Web-Content-Ordner meiner Anwendung verweisen. Das würde funktionieren, aber ich hätte verschiedene Konfigurationen (symbolische Links) auf Linux- und Windows-Rechnern.
Wie genau wird 'appBase' in server.xml gesetzt? – david
Ich habe die Host-Konfiguration in der Datei server.xml nicht geändert, daher ist es immer noch der Standardwert: –
david