ServletContext.getRealPath ("pictures") возвращает tmp dir ??JBoss - PullRequest
1 голос
/ 21 января 2011

Я сделал приложение с помощью seamgen (также с графическим интерфейсом) и создал папку «картинки» в корне приложения для хранения изображений профиля.

Когда я оцениваю ServletContext.getRealPath («картинки»)он возвращает временный каталог.

D: \ Dizertatie \ Java \ jboss-5.1.0.GA \ server \ default \ tmp \ 5c4o02s-hw5k2v-gj5pc3oq-1-gj632njx-al \ RaceCatalog.war \ pictures \ 1295555156562.jpg

Я пытался также сгенерированной папкой img, и это все то же самое.

Как мне получить относительный путь

PS.Я хочу использовать

Ответы [ 2 ]

2 голосов
/ 21 января 2011

Как вы упомянули в своем комментарии - это необходимо для визуализации изображений.Неправильно использовать этот метод для этой цели.

<h:graphicsImage> по умолчанию использует относительный путь к корню контекста приложения.Никаких дополнительных шагов не требуется.

Что касается поведения JBoss при извлечении файла войны - это кажется странным, но это не нарушает спецификации.Извлекать неразорвавшиеся военные файлы можно по своему усмотрению.

Обновление: Если речь идет о взорванной войне (вами), то не стесняйтесь использовать ошибку.Но это не имеет большого значения - вы не должны хранить изображения в веб-приложении.Настройте внешнее местоположение и сохраните их там.В противном случае вы рискуете потерять свои фотографии при повторном развертывании.

1 голос
/ 21 января 2011

Да.Поведение правильное.См. Javadoc для описания того, что метод getRealPath () должен делать: Прочитайте здесь

Я подозреваю, что вы ищете другой метод, но вы не в достаточной мере описали, какойпуть, который вы надеетесь получить.

...