Eu tenho um aplicativo web Java implantado no Tomcat 6 no Ubuntu 9.04. Para determinadas imagens, quero criar um link simbólico para outro diretório de imagens. Isso me permitirá fazer referência a imagens que permanecem no servidor mesmo se o aplicativo for removido e reimplantado.
O aplicativo é implantado no /var/lib/tomcat6/webapps/ROOT/
diretório e o images
diretório existe na guerra. Quando implanto o aplicativo, crio um link simbólico para o saved_images
diretório para que haja um caminho como /var/lib/tomcat6/webapps/ROOT/images/saved_images/
.
Na aplicação tenho o seguinte código:
File file = new File("/var/lib/tomcat6/webapps/ROOT/images/saved_images/abc.jpg");
boolean fileExists = file.exists();
O fileExists
valor é verdadeiro quando o código é executado, mas as imagens não são exibidas na página quando referenciadas como images/saved_images/abc.jpg
.
As permissões das imagens no /var/lib/tomcat6/webapps/ROOT/images
e /var/lib/tomcat6/webapps/ROOT/images/saved_images
são as mesmas (o proprietário e o grupo são tomcat6, que é o mesmo dos demais arquivos implantados na guerra). Se eu remover o link sym e colocar os arquivos save_images em um diretório com o mesmo nome, as imagens serão exibidas. Como posso fazer com que a página exiba essas imagens quando o diretório é um link simbólico sem precisar copiar os arquivos para um diretório real?
Responder1
Você já tentou adicionar o seguinte ao seu context.xml
arquivo?
<Context path="/foobar" allowLinking="true">