Путь к файлу в хост-режиме приложения gwt - PullRequest
1 голос
/ 26 сентября 2011

Хотелось бы узнать, как получить путь к файлу для доступа к нему в размещенном режиме.Мое приложение читает некоторые файлы с помощью сервлета.Первоначально файлы находятся в папке «war» (например, «war / data / file1.txt»), в разработке все работает хорошо, сервлет читает файл и отправляет данные клиенту.Однако при развертывании приложения в Tomcat у меня возникают проблемы.

Я скопировал содержимое папки war и поместил его в папку в каталоге «webapps» (в Tomcat).В режиме разработки я обращаюсь к файлу данных по пути «data / file1.txt», но в размещенном режиме это не работает, потому что я обнаружил, что при использовании этого пути сервлет ищет файл в «корзине»папка установочного каталога Tomcat, а не папка приложения.

Итак, я хотел бы узнать, как программно найти правильный путь для доступа к файлу и избежать проблем при развертывании приложения в Tomcat или любом другомдругой сервер.

Ответы [ 2 ]

1 голос
/ 26 сентября 2011

Использование ServletContext.getRealPath(). Вы можете получить экземпляр ServletContext от Servlet.getServletConfig().getServletContext().

Причина, по которой вы работали в режиме разработки, но не в Tomcat, заключается в том, что путь обычно указывается относительно рабочего каталога. Возможно, вы могли бы также заставить Tomcat работать, если запускали его, находясь в каталоге вашего веб-приложения или изменяя ярлык Tomcat, чтобы иметь рабочий каталог в вашем веб-приложении. Но вы определенно не должны полагаться на это.

0 голосов
/ 26 сентября 2011

Посмотрите на GWT.isProdMode ().Возвращает true, если работает в производственном режиме, и false, если в режиме разработки.Вы можете выбрать подходящий путь, поместив его в оператор if

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...