Ich habe eine Java-Webanwendung auf Tomcat 6 unter Ubuntu 9.04 bereitgestellt. Für bestimmte Bilder möchte ich einen symbolischen Link zu einem anderen Bildverzeichnis erstellen. Dadurch kann ich auf Bilder verweisen, die auf dem Server verbleiben, auch wenn die Anwendung entfernt und neu bereitgestellt wird.
Die Anwendung wird im /var/lib/tomcat6/webapps/ROOT/
Verzeichnis bereitgestellt und das images
Verzeichnis existiert im Krieg. Wenn ich die Anwendung bereitstelle, erstelle ich einen symbolischen Link zum saved_images
Verzeichnis, sodass ein Pfad wie dieser vorhanden ist /var/lib/tomcat6/webapps/ROOT/images/saved_images/
.
In der Anwendung habe ich den folgenden Code:
File file = new File("/var/lib/tomcat6/webapps/ROOT/images/saved_images/abc.jpg");
boolean fileExists = file.exists();
Der fileExists
Wert ist „true“, wenn der Code ausgeführt wird, aber die Bilder werden nicht auf der Seite angezeigt, wenn auf sie wie verwiesen wird images/saved_images/abc.jpg
.
Die Berechtigungen der Bilder in /var/lib/tomcat6/webapps/ROOT/images
und /var/lib/tomcat6/webapps/ROOT/images/saved_images
sind gleich (der Besitzer und die Gruppe sind tomcat6, was dasselbe ist wie bei den anderen im Krieg bereitgestellten Dateien). Wenn ich den Symlink entferne und die saved_images-Dateien in ein Verzeichnis mit demselben Namen lege, werden die Bilder angezeigt. Wie kann ich die Seite dazu bringen, diese Bilder anzuzeigen, wenn das Verzeichnis ein Symlink ist, ohne die Dateien in ein echtes Verzeichnis kopieren zu müssen?
Antwort1
Haben Sie versucht, Ihrer Datei Folgendes hinzuzufügen context.xml
?
<Context path="/foobar" allowLinking="true">