|
|
|
JSF - как узнать текущую директорию?
|
|||
|---|---|---|---|
|
#18+
Добрый день. Такой вопрос: как я могу получить текущую директорию на сервере для последующего сохранения данных туда? Наверное, используя FacesContext. Но как? Кто-нибудь сталкивался? Когда я работал с сервлетами, всё было так: session.getServletContext().getRealPath("FILES"); А как в данном случае? Заранее спасибо за ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2007, 19:12:13 |
|
||
|
JSF - как узнать текущую директорию?
|
|||
|---|---|---|---|
|
#18+
через FacesContext можно получить ServletContext и далее все по старому... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2007, 19:18:23 |
|
||
|
JSF - как узнать текущую директорию?
|
|||
|---|---|---|---|
|
#18+
Хм... мне кажется, это немного не тот метод... Я сделал так: Код: plaintext 1. 2. 3. 4. Получил следующее: C:\Program Files\jboss-4.2.0.GA\server\default\.\tmp\deploy\tmp28224MAIN.ear-contents\HRD-exp.war\FILES Директорию создал в вбб-апп, в WebRoot'е. Но путь к текущей дир мне указывается во временной директории сервера. Я понимаю, что я деплою приложение в ear-архиве. Но как обычно аплоадят файлы с такими приложениями? Куда? Если рядом с архивом - то как узнать из кода эту директорию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2007, 23:55:32 |
|
||
|
JSF - как узнать текущую директорию?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2007, 00:04:46 |
|
||
|
JSF - как узнать текущую директорию?
|
|||
|---|---|---|---|
|
#18+
Kachalovбыло Да, почитал, пасиб. Но только там никто так и не обьяснил как действительно надо. В принципе, с Вами в тех постах абсолютно согласен. Тут проблема в том, что приложение лежит в архиве и во время редеплоя+запуска он раскаковыватся в НОВУЮ временную директорию. А getRealPath даёт путь именно к ней. В итоге, опигравшись со всем этим, решил: 1. Сохранять зааплоденные файлы в "..\server\default\MYAPP_FILES\". Ежели понадобится переезд приложения, то всё, что нужно взять - это ear + эту дир. 2. Показывать зааплоденные файлы путём копирования их из вышеуказанной диреткории в ту самую, которую возвращает getRealPath, а потом давать на эти файлы обычные ссылки. Первый пункт осуществляется простым File f = new File("..\server\default\MYAPP_FILES\"); Может, оно и глупо хранить там свои файлы, но а как по-другому, если нет никакой системы, которую бы соблюдали хотя бы человек 5... Спасибо за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2007, 22:27:46 |
|
||
|
JSF - как узнать текущую директорию?
|
|||
|---|---|---|---|
|
#18+
J-ProНо только там никто так и не обьяснил как действительно надо. - если мыслить в стиле Java EE (надеюсь что уловил ход мысли разработчиков спецификации), то надо создавать переменную окружения/JNDI-переменную доступную для редактирования при деплое приложения (т. е. в web.xml, ejb-jar.xml и т. п.) и явно указать в ней путь к папке. Таким образом при развертывании приложения можно явно указать путь к папке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2007, 23:01:03 |
|
||
|
JSF - как узнать текущую директорию?
|
|||
|---|---|---|---|
|
#18+
Явно указать путь к папке где? В архиве? Ведь явно его можно указать и в константе, в каком-нить классе... Вопрос в следующем: можно ли писать прямо в архив? Или, если нет, то куда ОБЫЧНО складывают файлы? НЕ временные, а постоянные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 00:58:05 |
|
||
|
JSF - как узнать текущую директорию?
|
|||
|---|---|---|---|
|
#18+
J-ProВедь явно его можно указать и в константе, в каком-нить классе... - зашивать пути в код большая ошибка, так как без перекомпиляции ничего не изменишь, а пользователь приложения не всегда способен на такие подвиги J-ProВопрос в следующем: можно ли писать прямо в архив? - писать программно? нет - писать в web.xml (если речь идет о web-приложении) или в ejb-jar.xml (если речь идет о EJB) можно на этапе развертывания приложения (т. е. вручную) J-Pro Или, если нет, то куда ОБЫЧНО складывают файлы? НЕ временные, а постоянные? - какие файлы? картинки? HTML? Опишите задачу точнее, а то Вам сейчас насоветуют ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 12:13:03 |
|
||
|
JSF - как узнать текущую директорию?
|
|||
|---|---|---|---|
|
#18+
Kachalov- какие файлы? картинки? HTML? Опишите задачу точнее, а то Вам сейчас насоветуют Есть в базе люди, для них есть отдельная таблица, одно из полей - путь к фотке этого человека. В базе картинки решено не хранить. Поэтому, картинки хранятся в какой-то постоянной дир в веб-апп. Если б это был PHP, к примеру, т.е. приложение, представленное не архивом - то директорией этой была бы, к примеру, FILES, расположенная непостредственно рядом с index.html. И переносить приложение с места на место следовало бы вместе с этой дир. Но ежели у нас врхив EAR и в него программно не положишь файлы, то где их хранить кроме базы? Вот и решил я, что хранить их буду прямо в директории сервера(куда, ессно, нет доступа из веба). А когда необходимо будет эту самую фотку показать через веб - просто копирую из той папки во временную, куда и было распаковано приложение из EAR. НО может есть какие-то более устоявшиеся способы? Почему спрашиваю? Потому как мне кажется некрасивым хранение файлов какого-то приложения в директории сервера... Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 17:29:29 |
|
||
|
JSF - как узнать текущую директорию?
|
|||
|---|---|---|---|
|
#18+
J-ProНо ежели у нас врхив EAR и в него программно не положишь файлы, то где их хранить кроме базы? 1. папка любая какая Вам удобна, например: "D:/dir/FILES" 2. полный путь к папке прописываете в ejb-jar.xml как текстовый параметр к бину (если сохранением данных о пользователе занимается бин) и считываете в бине. При развертывании бина деплоер может его отредактировать так как ему удобно. 3. в настройках web-сервера задаете на эту папку псевдоним (алиас в Apache или виртуальная директория в IIS). Например: Alias /images/ "D:/dir/FILES" Для большей гибкости имя псевдонима тоже хорошо бы сохранять как параметр бина. 4. на web-страницах путь к картинкам выглядит как: <img src="/images/1.gif"> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 18:19:25 |
|
||
|
JSF - как узнать текущую директорию?
|
|||
|---|---|---|---|
|
#18+
Хм... вижу две проблемы: 1. Для того, чтобы перенести приложение на новый сервер, мне сначала необходимо будет покопаться в настройках и настроить алиас. 2. Все фотки будут лежать в одной, ВСЕГДА доступной по веб директории. В описанном мной выше варианте оба данных минуса отсутствуют, но смущает только то, что файлы хранятся в директории сервера, среди его рабочих директорий. В принципе, это всё работает и я лишь хотел узнать в конкретном случае с JBoss, есть ли у кого отработанная методика данного действа... Уважаемый Kachalov , спасибо Вам за ответы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 19:07:33 |
|
||
|
JSF - как узнать текущую директорию?
|
|||
|---|---|---|---|
|
#18+
J-Pro Для того, чтобы перенести приложение на новый сервер, мне сначала необходимо будет покопаться в настройках и настроить алиас. - в спецификации Java EE предусмотрены 6 ролей (этапов) при создании и поддержании Enterprise приложения. Одна из ролей: Deployer - это роль человека, который должен копаться в настройках сервера при развертывании приложения. Так что все так и задумано :) J-Pro Все фотки будут лежать в одной, ВСЕГДА доступной по веб директории. - наверное я не правильно понял Вас раньше, но мне казалось что это и нужно, чтобы папка была доступна из Internet, а картинки отдавались клиенту web-сервером, без привлечения БД, сервера приложений и т. д., что хорошо с точки зрения повышения производительности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 19:41:21 |
|
||
|
JSF - как узнать текущую директорию?
|
|||
|---|---|---|---|
|
#18+
Kachalov- в спецификации Java EE предусмотрены 6 ролей (этапов) при создании и поддержании Enterprise приложения. Одна из ролей: Deployer - это роль человека, который должен копаться в настройках сервера при развертывании приложения. Так что все так и задумано :) К сожалению, не всегда так задумано на предприятии, на котором производится продукт :) Поэтому, и деплоить, и писать часто должен один человек :) Kachalov- наверное я не правильно понял Вас раньше, но мне казалось что это и нужно, чтобы папка была доступна из Internet, а картинки отдавались клиенту web-сервером, без привлечения БД, сервера приложений и т. д., что хорошо с точки зрения повышения производительности Та нет, это просто я путаю Вас. Изначально я так и хотел, т.е. по аналогу с PHP. Но когда понял, что в архив EAR писать нельзя, плюс можно держать все фотки в недоступном из веба месте, а просто копировать во ВРЕМЕННУЮ диреткорию при необходимости и лишь потом давать линк, то подумал, что так даже круче. Но тогда смущало место, где хранятся "недоступные из веба" файлы, т.е. в директории сервера... В общем, ладно :) Буду делать пока так. Но ещё раз за помощь и ответы больше спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2007, 19:50:39 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34812815&tid=2144555]: |
0ms |
get settings: |
24ms |
get forum list: |
30ms |
check forum access: |
9ms |
check topic access: |
9ms |
track hit: |
78ms |
get topic data: |
25ms |
get forum data: |
6ms |
get page messages: |
108ms |
get tp. blocked users: |
3ms |
| others: | 505ms |
| total: | 797ms |

| 0 / 0 |
