2013-04-19 1 views
0

Я пытаюсь использовать внешнюю папку для хранения изображений для моего проекта Java EE 6. Я использую Glassfish 3.1.2. Я создал солнце-web.xml я нашел с этого поста:Статическое изображение недоступно docroot on Glassfish 3.1.2

Glassfish 3 - Loading images from a static server

который также включен здесь:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD GlassFish Application Server 3.0 Servlet 3.0//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_3_0-0.dtd"> 
<sun-web-app> 
    <property name="alternatedocroot_1" value="from=/imgs/slideshow/* dir=c:/users/jonathon/desktop/images" /> 
    <property name="alternatedocroot_2" value="from=/imgs/feed/* dir=c:/users/jonathon/desktop/images" /> 
    <property name="alternatedocroot_3" value="from=/imgs/question/* dir=c:/users/jonathon/desktop/images" /> 
</sun-web-app> 

Пока я не планирую держать его на моем рабочем столе, Я просто пытаюсь проверить это, прежде чем использовать это на своем сервере. На моей странице я использую эту реализацию для отображения изображения:

<div class="item"> 
    <h:graphicImage value="/imgs/slideshow/${imgs}" /> 
</div> 

Однако я только когда-либо получаю пустое изображение. Я убедился, что каталог верен (если у вас нет существующего каталога, вы получаете исключение при загрузке сервера)

Я думаю, что более понятный вопрос заключается в том, как правильно использовать внешние папки изображений и как , если возможно, пишите ли вы в эти папки?

+0

'значение = "/ ГИМ/слайд-шоу/$ {ГИМ}" '->' значение = "ГИМ/слайд-шоу/$ {ГИМ}"' –

ответ

0

Вы получите путь к значению from. Ваши изображения будут запрашиваться, например, c:/users/jonathon/dektop/images/imgs/slideshow*. Для меня была некоторая проблема и в прошлом. Надеюсь, вам это удастся.

Вам не нужен docroot для записи в эту папку. Вы можете просто использовать:

String path = new StringBuilder("c:") 
    .append(File.separator) 
    .append("users") 
    .append(File.separator) 
    .append("jonathon") 
    .append(File.separator) 
    .append("desktop") 
    .append(File.separator) 
    .append("images") 
    .append(File.separator) 
    .append("imgs") 
    .append(File.separator) 
    .append("slideshow") 
    .append(File.separator) 
    .append("myfile.jpg") 
    .toString(); 
File file = new File(path); 
+0

Если у меня есть glassfish-web.xml, должен ли он быть там? Я просто понял, что это может быть проблемой. – user1760412

+0

Я думаю, что это так, я заметил ошибку при загрузке, и она говорит, что sun-web.xml игнорируется. Я положил его в glassfish-web.xml как ребенок , и он работал красиво. Как вы пишете на это? – user1760412

+0

В зависимости от того, какую версию Glassfish вы используете. 'sun-web.xml' для версии Glassfish, поддерживаемой Sun. 'glassfish-web.xml' для версии с открытым исходным кодом. В случае версии с открытым исходным кодом вы не должны использовать скобки ''. Для него есть уникальное имя с открытым исходным кодом (не знаю, будет немного искать). – Aquillo