| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java tools & IDE's > проблемы с wtp eclipse |
| Автор: Amaz0nka 5.12.2007, 20:55 | ||
Есть простой сервлет, которым я пытаюсь открыть текстовый файл, вынуть от туда текст и отобразить его. Проблема в том, что этот wtp eclipse почему то ищет этот файл не в каталоге проекта, а в папке, где лежит сам eclipse.exe (от куда я запускаю эклипсу).
выдаёт FileNotFountException? если же этот файл поместить в папку с еклипсой - то всё прекрасно работает. Но не будешь же туда всё постоянно класть. Неужели ничего нельзя сделать? |
| Автор: powerOn 5.12.2007, 21:09 |
| Найдите в Run/Debug Settings параметр Working Directory и поменяйте на какой нужно. |
| Автор: Amaz0nka 5.12.2007, 22:17 |
| В том то и дело, что там нету не одной конфигурации... менять негде... а создать новую можно либо для апплета либо для аппликэйшена, для сервлета нельзя ((( |
| Автор: Kangaroo 5.12.2007, 22:23 |
| Amaz0nka, а как вы сервлет запускаете? Он же не сам, а в каком-нибудь приложении? |
| Автор: Amaz0nka 5.12.2007, 22:24 |
| Run on Server выбираешь и всё запускается |
| Автор: Kangaroo 5.12.2007, 23:02 | ||
Попробуйте:
А doc.txt положите в WebContent - корень вашего веб-проекта. |
| Автор: Amaz0nka 6.12.2007, 15:38 |
| не помогает |
| Автор: Kangaroo 6.12.2007, 16:39 |
Должно работать.. я у себе проверял. Попробуйте положить doc.txt по разным папкам проекта ) наугад. |
| Автор: AlexeyVorotnikov 6.12.2007, 17:29 | ||
А также в C:\WINDOWS\system32. Вдруг поможет. |
| Автор: Tony 6.12.2007, 18:20 | ||||
|
| Автор: Kangaroo 6.12.2007, 18:40 |
Может у человека хоть как-то заработает |
| Автор: COVD 6.12.2007, 18:55 | ||
А это такой раздел специфический, что похоже никто не понимает, что делает. Если методом проб и ошибок получается, то мгновенно и забывается. Поэтому никто и не может дать четкий ответ.
Более того, не будешь же ставить по окончанию работы на сервер весь эклипс. Результатом является war. И там опять эта проблема может всплыть. |
| Автор: Kangaroo 6.12.2007, 19:08 | ||
Да я вроде и предложил универсальное решение.. а почему оно не заработало... |
| Автор: Kangaroo 6.12.2007, 19:35 | ||||
Вот из Servlet Specification:
Amaz0nka, попробуйте еще так:
Положив doc.txt в WebContent |
| Автор: COVD 6.12.2007, 19:36 | ||||
Выходит, не универсальное. Я в свое время долго мучился с проблемой читать проперти файлы, пытался понять обьяснения про лоадеры. Естественно, уже благополучно забыл эту тарабарщину. Ключевым, как я понимаю, является использование метода getResourceAsStream("имя файла") и тогда вся головная боль переносится на систему. Поскольку программа, читающая файл, может лежать в отдельной библиотеке, то этот метод следует вызывать на обьекте, класс которого загружен основным приложением. Примерно так:
И файлы просто кладутся в корень папки проекта source , где java код лежит. Что-то вроде этого. PS У меня так и не сложилось ощущение, что я понял, что делал |
| Автор: Kangaroo 6.12.2007, 19:59 |
Ну почему? Тут вроде все понятно ) Из папки source файл копируется в WEB-INF/classes. А там его уже находит класс лоадер и читает с помощью getResourceAsStream. Поправьте, если я не прав.. |
| Автор: COVD 6.12.2007, 20:39 |
| Все правильно - когда работает, то все понятно. Непонятно было, когда не находил и тоже пихал файлы во все возможные папки. А причина - недостаточное знание концепции лоадеров. Я про то, что возможно это не оптимальное решение, а из серии "Работает? Не трогай!". |
| Автор: ivg 6.12.2007, 21:49 | ||
| Погорячился. Предущий свой пост предлагаю считать недействительным, ибо сами не без греха. Что ж попробую тоже помочь. Amaz0nka, у меня вариант приведённый Kangaroo, работает как надо. Это значит, что мы с вами что то по разному делаем. Почему так решили? В браузере не выводится содержимое файла? А файл не пустой? В коде вашего сервлета есть что то похожее на:
? Файл находится в папке WebContent проекта? Опишите подробнее что делаете? и приведите код сервлета. Может тогда что то прояснится. |