|
|
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
Kachalov ненавижу хибернейт товарищ Blazkowicz подсказывал решение как получить путь. - ну и где? Еще раз внимательно перечитал оба топика и нашел там единственный кусок кода: Код: plaintext тогда вот так: getServlet().getServletContext().getResource("/"); а getRealPath(), в общем случае, работать не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 14:50:54 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
Kachalov no13[quot Kachalov] - в приведенных топиках никто не сумел ответить на вопрос как писать в файл, не используя getRealPath() А зачем? Почему надо писать именно туда? - когда не знаешь как, спроси зачем :)[/quote] Можно придумать задачу, которой нужен указатель структуру в памяти, и засіпать форумы всех вопросами "как получить указатель в java". ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 15:22:34 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
no13 Можно придумать задачу, которой нужен указатель структуру в памяти, и засіпать форумы всех вопросами "как получить указатель в java". ;) - когда не знаешь как, переведи разговор на другую тему :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 16:10:58 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
ненавижу хибернейт тогда вот так: 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 16:15:32 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
Kachalov no13 Можно придумать задачу, которой нужен указатель структуру в памяти, и засіпать форумы всех вопросами "как получить указатель в java". ;) - когда не знаешь как, переведи разговор на другую тему :) когда лень делать как надо, можно доказывать что твой путь самый правильный, а все остальные неправы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 16:38:39 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
KachalovВопрос: как получить физический путь к этой папке не используя getRealPath()? no13когда лень делать как надо, можно доказывать что твой путь самый правильный, а все остальные неправы - ну скажите дураку как надо осуществлять запись в файл из web-приложения не используя getRealPath(), а то Вы уже третий пост в этой теме пишите, а еще ни одной строчки кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 16:51:57 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
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("/"); ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 17:45:19 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
rimanА что выдаст this.getClass().getResource("/"); ? file:/D:/server/tomcat/work/Catalina/localhost/testapp/WEB-INF/classes/ - но это путь к временной папке куда распакуется (Tomcat все же распакует архив) приложение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 18:08:43 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
Kachalov rimanА что выдаст this.getClass().getResource("/"); ? file:/D:/server/tomcat/work/Catalina/localhost/testapp/WEB-INF/classes/ - но это путь к временной папке куда распакуется (Tomcat все же распакует архив) приложение well... А разве можно писать файлы внутрь war'a? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 18:17:33 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
riman Kachalov rimanА что выдаст this.getClass().getResource("/"); ? file:/D:/server/tomcat/work/Catalina/localhost/testapp/WEB-INF/classes/ - но это путь к временной папке куда распакуется (Tomcat все же распакует архив) приложение well... А разве можно писать файлы внутрь war'a? - практически, ни разу не слышал :) - однако все равно вопрос открыт, при андеплое приложения временная папка куда приложение теоретически может писать данные (еще неизвестно какие настройки у SecurityManager-а) пропадет вместе со всеми данными, так что либо приложение надо хранить в распакованном виде и тогда работает getRealPath(), либо доступ к файловому ресурсу надо осуществлять предварительно зарегистрировав его в JNDI и располагая его в отдельной папке физически не связанной с приложением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 18:25:11 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
вообще писать внутри томката имхо бред собачий. должнен быть отдельный ресурс для этого, где-нить в /var/www/tomcat/app/ а доступ по http до этих файлов решается на раз два три. самое простое - символической ссылкой. посложнее - навесить сверху апач. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 18:25:12 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
Deadyвообще писать внутри томката имхо бред собачий. - совершенно с Вами согласен Deadyдолжнен быть отдельный ресурс для этого, где-нить в /var/www/tomcat/app/ - в том то и вопрос, где? и как туда добраться для записи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 18:28:03 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
"Kachalov" <nospam@sql.ru> - в том то и вопрос, где? и как туда добраться для записи? где - в любом месте на сервере. как добраться - или в конфе путь хранить (web.xml), или в БД, или в JNDI. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 18:30:24 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
всё! ура! все щасливы! :) запись файлов - на специально отведенные ресурсы конфиги - в пропертях пропертя - в jndi или в текстовых файлах внутри аппликации доступ к пропертям - через getResource(). хлопушки, шарики :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 18:53:13 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
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 опиши задачу конкретнее - может и получишь внятный ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 18:55:45 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
Deady где - в любом месте на сервере. как добраться - или в конфе путь хранить (web.xml), или в БД, или в JNDI. - мне это понятно. Обсужадемая проблема заключается в том что хочется создать приложение которое легко переносится с сервера на сервер, самостоятельно определяя физический путь к домашней директории, а не прописывая его каждый раз ручками в конфигах. Для определения пути можно использовать getRealPath(), который работает "почти" всегда (за исключением случаев, когда приложение хранится в виде WAR-архива), однако некоторые участники обсуждения считают этот метод не кошерным из-за того самого "почти". - как решается проблема с точки зрения "нераспаковщиков" понятно, собственно очевидны два варианта решения: 1) зарегистрировать папку как ресурс в JNDI или LDAP и переложить проблему на того кто будет развертывать приложение 2) хранить все изменяемые ресурсы в БД Оба решения, IMHO, имеют недостатки для определенного круга задач. В первом случае для небольших приложений возникают неоправданно сложные настройки. Во втором случае появляется необходимость пропускать все данные через БД и сервлет, что не здорово при показе картинок на ресурсе с большой посещаемостью. Мне кажется что при условии распаковки приложения getRealPath() это нормальный метод и предавать его анафеме не стоит, так как он позволяет просто решить задачу доступа к ресурсу на запись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 18:56:58 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
VoDA Первое: в джаве нет "директории откуда запущено приложение", ибо кроссплатформенность и т.п. (приложение не знает на какой платформе работает). Есть только относительные... остальное своеобразные хаки системы. - в web-программировании со времен CGI есть понятие DOCUMENT_ROOT - абсолютный физический путь к домашней директории сайта. Если разработчики контейнеров сервлетов (и Sun как создатель спецификации) допускают невозможность получить физический путь к домашней директории сайта (собственно уничтожают такое понятие), то они дают лишний аргумент сторонникам разработки web-приложений на других языках. VoDA Второе: web-приложение не должно иметь доступа на запись... особенно в директорию web-server'a. - кто сказал, что приложение не должно иметь права на запись? А куда сохранять картинки? В базу? А как поступать с CMS которые генерируют статические HTML страницы? Исключить как класс когда программируешь на Java? VoDA Третье: вы уверены, что нужно писать в нечто найденное по jndi ? - посмотрите топик с начала. Это мне ненавижу хибернейт посоветовал, а писать туда мне лично не удалось. VoDA Итог: если нужно что-то записывать на сервере - ТОЛЬКО в СУБД. - после таких советов, начинаются разговоры о "тормознутости" Java сайтов и необходимости использования отдельного сервера для Java-сайта VoDAPS опиши задачу конкретнее - может и получишь внятный ответ. - getRealPath() и требование распаковки приложения при деплое (кстати у Tomcat это свойство по дефолту) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2007, 19:11:39 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
Kachalov...ну скажите дураку как надо осуществлять запись в файл из web-приложения не используя getRealPath(), а то Вы уже третий пост в этой теме пишите, а еще ни одной строчки кода. Ответ прост - а не надо туда писать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2007, 00:04:14 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
skipper13 Kachalov...ну скажите дураку как надо осуществлять запись в файл из web-приложения не используя getRealPath(), а то Вы уже третий пост в этой теме пишите, а еще ни одной строчки кода. Ответ прост - а не надо туда писать. - еще один любитель писать в базу, больше ничего полезного из Вашего поста извлечь не сумел (извините за скудоумие и неспособность понять эзотерическое знание). - откуда у жителей Харькова такая уверенность в том как делать "надо", а как "не надо"? Чем подтверждается Ваше утверждение? Какими то разумными доводами или, может быть, большим опытом web-программирования (посмотрел на Ваш сайт ...)? Напишите в компанию Sun и укажите им как "надо", пусть они объявят метод getRealPath() как deprecated :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2007, 11:05:33 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
букаф что то много... а нельзя получить полный путь от такого файла: "." можно скрестить пальцы на что что сервак стартанули из его дом.каталога ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2007, 09:05:00 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
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-программист, пяткой левой ноги пишу за минуту интернет-магазин? Или вы просто и дальше развиваете свои демагогические способности? Обсуждение "почему нельзя гарантированно писать в файл веб-приложения" сродни обсуждению "почему нельзя получить указатель". ПМСМ. Удачи в борьбе с ветряными мельниками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2007, 09:45:47 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
no13Удачи в борьбе с ветряными мельниками. - самокритично ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2007, 10:34:23 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
Kachalov Обсужадемая проблема заключается в том что хочется создать приложение которое легко переносится с сервера на сервер, самостоятельно определяя физический путь к домашней директории, а не прописывая его каждый раз ручками в конфигах. Для определения пути можно использовать getRealPath(), который работает "почти" всегда (за исключением случаев, когда приложение хранится в виде WAR-архива), однако некоторые участники обсуждения считают этот метод не кошерным из-за того самого "почти". Именно это я и преследую. :) Всё должно быть просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2007, 16:51:16 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
"Мишаааааааааааааааа" <nospam@sql.ru> Именно это я и преследую. :) Всё должно быть просто. если для себя - то да. а если на продажу, то лучше усложнить. иначе как вы потом поддержку продавать будете? :)) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2007, 16:53:29 |
|
||
|
Путь к WEB серверу. Как узнать?
|
|||
|---|---|---|---|
|
#18+
Deady "Мишаааааааааааааааа" <nospam@sql.ru> Именно это я и преследую. :) Всё должно быть просто. если для себя - то да. а если на продажу, то лучше усложнить. иначе как вы потом поддержку продавать будете? :)) Posted via ActualForum NNTP Server 1.4 А вчём проблемма? Я добавил в проект xml файл. NB сделал мне war файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2007, 17:00:48 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34722765&tid=2144917]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
18ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 296ms |
| total: | 441ms |

| 0 / 0 |
