У меня есть веб-приложение Java, развернутое на Tomcat 6 в Ubuntu 9.04. Для некоторых изображений я хочу создать символическую ссылку на другой каталог изображений. Это позволит мне ссылаться на изображения, которые остаются на сервере, даже если приложение будет удалено и развернуто заново.
Приложение развернуто в /var/lib/tomcat6/webapps/ROOT/
каталоге, а images
каталог существует в war. Когда я развертываю приложение, я создаю символическую ссылку на saved_images
каталог, чтобы был путь типа /var/lib/tomcat6/webapps/ROOT/images/saved_images/
.
В приложении у меня есть следующий код:
File file = new File("/var/lib/tomcat6/webapps/ROOT/images/saved_images/abc.jpg");
boolean fileExists = file.exists();
Значение fileExists
true при выполнении кода, но изображения не отображаются на странице при ссылке типа images/saved_images/abc.jpg
.
Права доступа к изображениям в /var/lib/tomcat6/webapps/ROOT/images
и /var/lib/tomcat6/webapps/ROOT/images/saved_images
одинаковы (владелец и группа — tomcat6, что совпадает с другими файлами, развернутыми в war). Если я удалю символическую ссылку и поместлю файлы saved_images в каталог с тем же именем, изображения будут отображаться. Как сделать так, чтобы страница отображала эти изображения, когда каталог является символической ссылкой, без необходимости копирования файлов в реальный каталог?
решение1
Пробовали ли вы добавить следующее в свой context.xml
файл?
<Context path="/foobar" allowLinking="true">