Tengo una aplicación web Java implementada en Tomcat 6 en Ubuntu 9.04. Para determinadas imágenes, quiero crear un enlace simbólico a otro directorio de imágenes. Esto me permitirá hacer referencia a imágenes que permanecen en el servidor incluso si la aplicación se elimina y se vuelve a implementar.
La aplicación se implementa en el /var/lib/tomcat6/webapps/ROOT/
directorio y el images
directorio existe en la guerra. Cuando implemento la aplicación, creo un enlace simbólico al saved_images
directorio para que haya una ruta como /var/lib/tomcat6/webapps/ROOT/images/saved_images/
.
En la aplicación tengo el siguiente código:
File file = new File("/var/lib/tomcat6/webapps/ROOT/images/saved_images/abc.jpg");
boolean fileExists = file.exists();
El fileExists
valor es verdadero cuando se ejecuta el código, pero las imágenes no se muestran en la página cuando se hace referencia a ellas como images/saved_images/abc.jpg
.
Los permisos de las imágenes en /var/lib/tomcat6/webapps/ROOT/images
y /var/lib/tomcat6/webapps/ROOT/images/saved_images
son los mismos (el propietario y el grupo es tomcat6, que es el mismo que el resto de archivos implementados en la guerra). Si elimino el enlace simbólico y coloco los archivos de imágenes_guardadas en un directorio con el mismo nombre, se muestran las imágenes. ¿Cómo puedo hacer que la página muestre estas imágenes cuando el directorio es un enlace simbólico sin tener que copiar los archivos a un directorio real?
Respuesta1
¿Has intentado agregar lo siguiente a tu context.xml
archivo?
<Context path="/foobar" allowLinking="true">