| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > как открыть файл Spring MVC |
| Автор: Kirkh 20.9.2010, 22:33 | ||
| Доброе время суток. Делаю простенькое web-приложение, для того чтобы познакомиться с Spring MVC. В классе одного из контроллеров мне нужно открыть файл all.xml. Положил его в корень проекта, т.е. на одном уровне с директорией WEB-INF. Но столкнулся с проблемой как получить к нему доступ. Если обращаться по абсолютному пути то все хорошо все получается если просто File("all.xml") или File("/all.xml") то выпадает java.lang.NullPointerException. Вот мой класс:
Как быть?.. Подскажите пожалуйста. |
| Автор: SlavaSemushin 21.9.2010, 07:24 |
| Я бы попробовал new File(request.getContextPath() + "/all.xml") |
| Автор: Kirkh 21.9.2010, 09:03 | ||||
| Я бы попробовал new File(request.getContextPath() + "/all.xml") - нет тоже не получается... В ходе очередных экспериментов обнаружил что к относительному пути указанному как параметр конструктора File(), если путь начинается не с "/", т.е. например так:
добавляется контекст сервера т.е. /home/myName/programs and scripts/apache-tomcat-6.0.29/... дальше немного еще проб и в итоге получилось все вот так:
Всем Спасибо! |
| Автор: Kirkh 23.9.2010, 09:40 | ||
| И все таки проблема осталась. Если делать как посоветовал SlavaSemushin т.е.
то приложение пытается открыть файл /springII/all.xml, которого понятное дело нет. Пробовал удалить первый символ "/" чтоб Linux не воспринимал этот путь абсолютным, тогда добавляется контекст сервера и естественно файла /home/myName/programs and scripts/apache-tomcat-6.0.29/springII/all.xml тоже нет. Из добавления контекста сделал вывод и собрал строку как описывал выше... но злая система Виндовс отказывается добавлять контекст сервера... и опять все не работает... т.е. на моей Ubuntu все ок, в винде java.io.FileNotFoundException... Помогайте о гуру |
| Автор: Kirkh 23.9.2010, 10:35 | ||
Придумал способ как сделать работающую версию для томката на любой операционке
но.. это в принципе тоже костыль... Советы господа... |
| Автор: Skipy 23.9.2010, 15:36 | ||||
Господи, посоветуй страждущим прочитать API!
|
| Автор: Kirkh 24.9.2010, 13:15 | ||
Строго Вы... Читал. И даже решение нашел, именно то что вы посоветовали. Отписаться на форуме не успел. Skipy Спасибо. А в API не всегда сразу и и понятно с какой стороны читать:(. По крайней мере начинающим "читателям". |
| Автор: Skipy 24.9.2010, 14:06 | ||||||
Вы бы знали, насколько было бы меньше вопросов, если бы этим советом пользовались все...
И замечательно! А сколько дополнительно полезного узнали!
Отталкиваясь от тех объектов, которые у Вас есть. HttpServletRequest/HttpServletResponse. Потом дойдете до сессии. Потом - до контекста сервлета. Заодно узнаете, что еще умеет сессия, что контекст. И это самое ценное, потому как вот эти дополнительные знания незаметно накапливаются. И в конце концов вместо того, чтобы лезть в API, Вы то, что нужно, просто вспомните. |