Считывания XML файла вэб-приложения
От: JINI  
Дата: 23.03.07 11:54
Оценка:
Есть у меня вэб-приложение в котором есть файл, который расположен в WEB-INF/resources/file.xml.
Также в вэб-приложении у меня есть сервлет, который должен считать содержимое этого файла.
Вопрос: как найти этот файл через сервлет, чтобы его считать?
Re: Считывания XML файла вэб-приложения
От: stenkil  
Дата: 23.03.07 12:15
Оценка: -1
Здравствуйте, JINI, Вы писали:

JIN>Есть у меня вэб-приложение в котором есть файл, который расположен в WEB-INF/resources/file.xml.

JIN>Также в вэб-приложении у меня есть сервлет, который должен считать содержимое этого файла.
JIN>Вопрос: как найти этот файл через сервлет, чтобы его считать?
Попробуй
  getServletContext().getRealPath("/WEB-INF/resources/file.xml");
Re[2]: Считывания XML файла вэб-приложения
От: JINI  
Дата: 23.03.07 12:26
Оценка:
Здравствуйте, stenkil, Вы писали:

S>Здравствуйте, JINI, Вы писали:


JIN>>Есть у меня вэб-приложение в котором есть файл, который расположен в WEB-INF/resources/file.xml.

JIN>>Также в вэб-приложении у меня есть сервлет, который должен считать содержимое этого файла.
JIN>>Вопрос: как найти этот файл через сервлет, чтобы его считать?
S>Попробуй
S>
S>  getServletContext().getRealPath("/WEB-INF/resources/file.xml");
S>



Я смотрю,что он

Returns a String containing the real path for a given virtual path. For example, the path "/index.html" returns the absolute file path on the server's filesystem would be served by a request for "http://host/contextPath/index.html", where contextPath is the context path of this ServletContext..

The real path returned will be in a form appropriate to the computer and operating system on which the servlet container is running, including the proper path separators. This 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).


У меня war файл и я, как понимаю, он вернёт null.
И ещё один момент. Мне также необходимо взять ссылку на другой файл из того же каталога и записать в него. Т.е. как я понимаю, url-ссылка здесь не пойдёт.
Re[2]: Считывания XML файла вэб-приложения
От: Blazkowicz Россия  
Дата: 23.03.07 12:32
Оценка: +1
Здравствуйте, stenkil, Вы писали:

S>Попробуй

S>
S>  getServletContext().getRealPath("/WEB-INF/resources/file.xml");
S>


Эть, сколько вас развеолсь с этим getRealPath. Не уже ли никто с ним не связывался в действительности? getResourceAsStream и ез вариантов.
Re[3]: Считывания XML файла вэб-приложения
От: JINI  
Дата: 23.03.07 12:41
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Здравствуйте, stenkil, Вы писали:


S>>Попробуй

S>>
S>>  getServletContext().getRealPath("/WEB-INF/resources/file.xml");
S>>


B>Эть, сколько вас развеолсь с этим getRealPath. Не уже ли никто с ним не связывался в действительности? getResourceAsStream и ез вариантов.



У меня war файл.

Я делал вот так вот

java.io.InputStream resourceInputStream = getServletContext().getResourceAsStream("WEB-INF/resources/input.xml");

и получал null.
Re[4]: Считывания XML файла вэб-приложения
От: Blazkowicz Россия  
Дата: 23.03.07 12:47
Оценка:
Здравствуйте, JINI, Вы писали:

JIN>java.io.InputStream resourceInputStream = getServletContext().getResourceAsStream("WEB-INF/resources/input.xml");


JIN>и получал null.


Попорбуй слеш в начале.
Re[3]: Считывания XML файла вэб-приложения
От: stenkil  
Дата: 23.03.07 12:47
Оценка:
Здравствуйте, JINI, Вы писали:


JIN>[code]

JIN>Returns a String containing the real path for a given virtual path. For example, the path "/index.html" returns the absolute file path on the server's filesystem would be served by a request for "http://host/contextPath/index.html", where contextPath is the context path of this ServletContext..

Вернул он мне нормальный путь D:\..., но вот с war файлом не знаю. Подождем спецов
Re[3]: Считывания XML файла вэб-приложения
От: stenkil  
Дата: 23.03.07 12:58
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Эть, сколько вас развеолсь с этим getRealPath. Не уже ли никто с ним не связывался в действительности? getResourceAsStream и ез вариантов.


Объяснил бы хоть, где грабли?
Re[3]: Считывания XML файла вэб-приложения
От: C0s Россия  
Дата: 23.03.07 13:45
Оценка: +1
Здравствуйте, JINI, Вы писали:

JIN>И ещё один момент. Мне также необходимо взять ссылку на другой файл из того же каталога и записать в него. Т.е. как я понимаю, url-ссылка здесь не пойдёт.


какого еще каталога, если мы говорим о web-приложении, которое есть war-файл?!
Re[4]: Считывания XML файла вэб-приложения
От: C0s Россия  
Дата: 23.03.07 13:48
Оценка:
Здравствуйте, stenkil, Вы писали:

B>>Эть, сколько вас развеолсь с этим getRealPath. Не уже ли никто с ним не связывался в действительности? getResourceAsStream и ез вариантов.


S>Объяснил бы хоть, где грабли?


веб-приложение поставляется war-файлом.
вариант с распакованным содержимым — опционален, надо писать так, чтобы работало без предположения относительно места хранения распакованных файлов (сервер может это делать в своих "потайных" каталогах)
Re[5]: Считывания XML файла вэб-приложения
От: C0s Россия  
Дата: 23.03.07 13:49
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

JIN>>java.io.InputStream resourceInputStream = getServletContext().getResourceAsStream("WEB-INF/resources/input.xml");

JIN>>и получал null.

B>Попорбуй слеш в начале.


ресурсу место в WEB-INF/classes/resources/input.xml, тогда обращаться к нему надо будет "resources/input.xml"
Re[6]: Считывания XML файла вэб-приложения
От: JINI  
Дата: 23.03.07 13:53
Оценка:
Здравствуйте, C0s, Вы писали:

C0s>Здравствуйте, Blazkowicz, Вы писали:


JIN>>>java.io.InputStream resourceInputStream = getServletContext().getResourceAsStream("WEB-INF/resources/input.xml");

JIN>>>и получал null.

B>>Попорбуй слеш в начале.


C0s>ресурсу место в WEB-INF/classes/resources/input.xml, тогда обращаться к нему надо будет "resources/input.xml"


Но это не логично класть ресурсы в папку с классами.
Re[7]: Считывания XML файла вэб-приложения
От: C0s Россия  
Дата: 23.03.07 13:59
Оценка:
Здравствуйте, JINI, Вы писали:

C0s>>ресурсу место в WEB-INF/classes/resources/input.xml, тогда обращаться к нему надо будет "resources/input.xml"


JIN>Но это не логично класть ресурсы в папку с классами.


почему это не логично?
ресурсы, чтобы быть доступными, должны попадать в класс-путь — значит им место рядом с классами
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.