powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Путь к WEB серверу. Как узнать?
25 сообщений из 55, страница 2 из 3
Путь к WEB серверу. Как узнать?
    #34720065
Kachalov ненавижу хибернейт
товарищ Blazkowicz подсказывал решение как получить путь.
- ну и где? Еще раз внимательно перечитал оба топика и нашел там единственный кусок кода:
Код: plaintext
getServletContext().getResourceAsStream("/WEB-INF/resources/input.xml");
- но это не получение пути к файлу, а получение потока чтения, связаного с файлом.
тогда вот так:
getServlet().getServletContext().getResource("/");
а getRealPath(), в общем случае, работать не будет.
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34720220
no13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kachalov no13[quot Kachalov]
- в приведенных топиках никто не сумел ответить на вопрос как писать в файл, не используя getRealPath()
А зачем? Почему надо писать именно туда?
- когда не знаешь как, спроси зачем :)[/quote]
Можно придумать задачу, которой нужен указатель структуру в памяти, и засіпать форумы всех вопросами "как получить указатель в java". ;)
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34720445
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
no13
Можно придумать задачу, которой нужен указатель структуру в памяти, и засіпать форумы всех вопросами "как получить указатель в java". ;)
- когда не знаешь как, переведи разговор на другую тему :)
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34720466
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ненавижу хибернейт
тогда вот так:
getServlet().getServletContext().getResource("/");
а getRealPath(), в общем случае, работать не будет.
- надеюсь Вы сами пробовали такой вариант. У меня он дает результат:
jndi:/localhost/testapp/ (testapp - имя тестового web-приложения).

При попытке открыть URL (типа: jndi:/localhost/testapp/WEB-INF/test.txt) на запись получаем:
java.net.UnknownServiceException: protocol doesn't support output
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34720564
no13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kachalov no13
Можно придумать задачу, которой нужен указатель структуру в памяти, и засіпать форумы всех вопросами "как получить указатель в java". ;)
- когда не знаешь как, переведи разговор на другую тему :)
когда лень делать как надо, можно доказывать что твой путь самый правильный, а все остальные неправы
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34720614
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KachalovВопрос: как получить физический путь к этой папке не используя getRealPath()?

no13когда лень делать как надо, можно доказывать что твой путь самый правильный, а все остальные неправы

- ну скажите дураку как надо осуществлять запись в файл из web-приложения не используя getRealPath(), а то Вы уже третий пост в этой теме пишите, а еще ни одной строчки кода.
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34720782
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov ненавижу хибернейт
тогда вот так:
getServlet().getServletContext().getResource("/");
а getRealPath(), в общем случае, работать не будет.
- надеюсь Вы сами пробовали такой вариант. У меня он дает результат:
jndi:/localhost/testapp/ (testapp - имя тестового web-приложения).

При попытке открыть URL (типа: jndi:/localhost/testapp/WEB-INF/test.txt) на запись получаем:
java.net.UnknownServiceException: protocol doesn't support output
Пробовал конечно.
А что выдаст this.getClass().getResource("/"); ?
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34720857
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rimanА что выдаст this.getClass().getResource("/"); ?
file:/D:/server/tomcat/work/Catalina/localhost/testapp/WEB-INF/classes/
- но это путь к временной папке куда распакуется (Tomcat все же распакует архив) приложение
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34720874
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov rimanА что выдаст this.getClass().getResource("/"); ?
file:/D:/server/tomcat/work/Catalina/localhost/testapp/WEB-INF/classes/
- но это путь к временной папке куда распакуется (Tomcat все же распакует архив) приложение
well...
А разве можно писать файлы внутрь war'a?
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34720891
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
riman Kachalov rimanА что выдаст this.getClass().getResource("/"); ?
file:/D:/server/tomcat/work/Catalina/localhost/testapp/WEB-INF/classes/
- но это путь к временной папке куда распакуется (Tomcat все же распакует архив) приложение
well...
А разве можно писать файлы внутрь war'a?
- практически, ни разу не слышал :)

- однако все равно вопрос открыт, при андеплое приложения временная папка куда приложение теоретически может писать данные (еще неизвестно какие настройки у SecurityManager-а) пропадет вместе со всеми данными, так что либо приложение надо хранить в распакованном виде и тогда работает getRealPath(), либо доступ к файловому ресурсу надо осуществлять предварительно зарегистрировав его в JNDI и располагая его в отдельной папке физически не связанной с приложением.
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34720892
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообще писать внутри томката имхо бред собачий. должнен быть отдельный
ресурс для этого, где-нить в /var/www/tomcat/app/
а доступ по http до этих файлов решается на раз два три. самое простое -
символической ссылкой. посложнее - навесить сверху апач.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34720897
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deadyвообще писать внутри томката имхо бред собачий.
- совершенно с Вами согласен

Deadyдолжнен быть отдельный
ресурс для этого, где-нить в /var/www/tomcat/app/

- в том то и вопрос, где? и как туда добраться для записи?
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34720900
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Kachalov" <nospam@sql.ru>;

- в том то и вопрос, где? и как туда добраться для записи?


где - в любом месте на сервере. как добраться - или в конфе путь хранить (web.xml), или в БД, или в JNDI.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34720946
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всё! ура! все щасливы! :)
запись файлов - на специально отведенные ресурсы
конфиги - в пропертях
пропертя - в jndi или в текстовых файлах внутри аппликации
доступ к пропертям - через getResource().

хлопушки, шарики :)
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34720954
VoDA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov- надеюсь Вы сами пробовали такой вариант. У меня он дает результат:
jndi:/localhost/testapp/ (testapp - имя тестового web-приложения).

При попытке открыть URL (типа: jndi:/localhost/testapp/WEB-INF/test.txt) на запись получаем:
java.net.UnknownServiceException: protocol doesn't support output
Привет.

Первое: в джаве нет "директории откуда запущено приложение", ибо кроссплатформенность и т.п. (приложение не знает на какой платформе работает). Есть только относительные... остальное своеобразные хаки системы.
Второе: web-приложение не должно иметь доступа на запись... особенно в директорию web-server'a.
Третье: вы уверены, что нужно писать в нечто найденное по jndi ?

Итог: если нужно что-то записывать на сервере - ТОЛЬКО в СУБД.

PS опиши задачу конкретнее - может и получишь внятный ответ.
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34720955
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deady
где - в любом месте на сервере. как добраться - или в конфе путь хранить (web.xml), или в БД, или в JNDI.
- мне это понятно. Обсужадемая проблема заключается в том что хочется создать приложение которое легко переносится с сервера на сервер, самостоятельно определяя физический путь к домашней директории, а не прописывая его каждый раз ручками в конфигах. Для определения пути можно использовать getRealPath(), который работает "почти" всегда (за исключением случаев, когда приложение хранится в виде WAR-архива), однако некоторые участники обсуждения считают этот метод не кошерным из-за того самого "почти".

- как решается проблема с точки зрения "нераспаковщиков" понятно, собственно очевидны два варианта решения:

1) зарегистрировать папку как ресурс в JNDI или LDAP и переложить проблему на того кто будет развертывать приложение

2) хранить все изменяемые ресурсы в БД

Оба решения, IMHO, имеют недостатки для определенного круга задач. В первом случае для небольших приложений возникают неоправданно сложные настройки. Во втором случае появляется необходимость пропускать все данные через БД и сервлет, что не здорово при показе картинок на ресурсе с большой посещаемостью.

Мне кажется что при условии распаковки приложения getRealPath() это нормальный метод и предавать его анафеме не стоит, так как он позволяет просто решить задачу доступа к ресурсу на запись.
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34720988
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VoDA
Первое: в джаве нет "директории откуда запущено приложение", ибо кроссплатформенность и т.п. (приложение не знает на какой платформе работает). Есть только относительные... остальное своеобразные хаки системы.
- в web-программировании со времен CGI есть понятие DOCUMENT_ROOT - абсолютный физический путь к домашней директории сайта. Если разработчики контейнеров сервлетов (и Sun как создатель спецификации) допускают невозможность получить физический путь к домашней директории сайта (собственно уничтожают такое понятие), то они дают лишний аргумент сторонникам разработки web-приложений на других языках.

VoDA
Второе: web-приложение не должно иметь доступа на запись... особенно в директорию web-server'a.
- кто сказал, что приложение не должно иметь права на запись? А куда сохранять картинки? В базу? А как поступать с CMS которые генерируют статические HTML страницы? Исключить как класс когда программируешь на Java?

VoDA
Третье: вы уверены, что нужно писать в нечто найденное по jndi ?
- посмотрите топик с начала. Это мне ненавижу хибернейт посоветовал, а писать туда мне лично не удалось.

VoDA
Итог: если нужно что-то записывать на сервере - ТОЛЬКО в СУБД.
- после таких советов, начинаются разговоры о "тормознутости" Java сайтов и необходимости использования отдельного сервера для Java-сайта

VoDAPS опиши задачу конкретнее - может и получишь внятный ответ.
- getRealPath() и требование распаковки приложения при деплое (кстати у Tomcat это свойство по дефолту)
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34722048
skipper13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kachalov...ну скажите дураку как надо осуществлять запись в файл из web-приложения не используя getRealPath(), а то Вы уже третий пост в этой теме пишите, а еще ни одной строчки кода.
Ответ прост - а не надо туда писать.
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34722155
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skipper13 Kachalov...ну скажите дураку как надо осуществлять запись в файл из web-приложения не используя getRealPath(), а то Вы уже третий пост в этой теме пишите, а еще ни одной строчки кода.
Ответ прост - а не надо туда писать.
- еще один любитель писать в базу, больше ничего полезного из Вашего поста извлечь не сумел (извините за скудоумие и неспособность понять эзотерическое знание).

- откуда у жителей Харькова такая уверенность в том как делать "надо", а как "не надо"? Чем подтверждается Ваше утверждение? Какими то разумными доводами или, может быть, большим опытом web-программирования (посмотрел на Ваш сайт ...)? Напишите в компанию Sun и укажите им как "надо", пусть они объявят метод getRealPath() как deprecated :)
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34722765
expp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
букаф что то много...

а нельзя получить полный путь от такого файла: "."

можно скрестить пальцы на что что сервак стартанули из его дом.каталога
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34722823
no13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kachalov
skipper13
Ответ прост - а не надо туда писать.

- еще один любитель писать в базу, ....
- ....Чем подтверждается Ваше утверждение?


http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletContext.html#getRealPath(java.lang.String)
RTFMThis method returns null if the servlet container cannot translate the virtual path to a real path for any reason (such as when the content is being made available from a .war archive).

Kachalov Какими то разумными доводами или, может быть, большим опытом web-программирования (посмотрел на Ваш сайт ...)? Напишите в компанию Sun и укажите им как "надо", пусть они объявят метод getRealPath() как deprecated :)
Компания Sun без моей помощи решила, что getRealPath не предоставляет гарантированного пути к файлу. Если вы так уверены в своей правоте, товарищ язва, то берите и пишите, доказывайте что доступ к диску святое право разработчика приложения, а всякие соображения безопасности - детские страхи.

П.С.
Я где-то бил себя в грудь, что я де крутой web-программист, пяткой левой ноги пишу за минуту интернет-магазин? Или вы просто и дальше развиваете свои демагогические способности? Обсуждение "почему нельзя гарантированно писать в файл веб-приложения" сродни обсуждению "почему нельзя получить указатель". ПМСМ. Удачи в борьбе с ветряными мельниками.
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34722959
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
no13Удачи в борьбе с ветряными мельниками.
- самокритично
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34724412
Мишаааааааааааааааа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov
Обсужадемая проблема заключается в том что хочется создать приложение которое легко переносится с сервера на сервер, самостоятельно определяя физический путь к домашней директории, а не прописывая его каждый раз ручками в конфигах. Для определения пути можно использовать getRealPath(), который работает "почти" всегда (за исключением случаев, когда приложение хранится в виде WAR-архива), однако некоторые участники обсуждения считают этот метод не кошерным из-за того самого "почти".

Именно это я и преследую. :) Всё должно быть просто.
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34724421
Фотография Penkov Vladimir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Мишаааааааааааааааа" <nospam@sql.ru>;

Именно это я и преследую. :) Всё должно быть просто.



если для себя - то да. а если на продажу, то лучше усложнить. иначе как вы потом поддержку продавать будете? :))
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Путь к WEB серверу. Как узнать?
    #34724451
Мишаааааааааааааааа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Deady
"Мишаааааааааааааааа" <nospam@sql.ru>;

Именно это я и преследую. :) Всё должно быть просто.



если для себя - то да. а если на продажу, то лучше усложнить. иначе как вы потом поддержку продавать будете? :))
Posted via ActualForum NNTP Server 1.4

А вчём проблемма? Я добавил в проект xml файл. NB сделал мне war файл.
...
Рейтинг: 0 / 0
25 сообщений из 55, страница 2 из 3
Форумы / Java [игнор отключен] [закрыт для гостей] / Путь к WEB серверу. Как узнать?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]