Как прочитать каталог в папке веб-приложения веб-приложения Maven - PullRequest
2 голосов
/ 17 февраля 2012

Я работаю в веб-приложении Maven. Мне нужно прочитать каталог (например, файлы) в папке моего веб-приложения следующим образом:

Java.io.File file = new Java.io.File("path");

Но я не знаю, как здесь указать путь к каталогу.

Ответы [ 3 ]

2 голосов
/ 17 февраля 2012

Вы не должны давать адреса локальных путей.Путь должен быть относительным адресом, например /files/images в папке вашего веб-архива (.war).

Чтобы правильно использовать относительные пути, я предлагаю вам добавить вашу целевую папку к определению ресурсов POM.xml,проверить эти страницы http://www.mkyong.com/maven/how-to-change-maven-resources-folder-location/ http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

Вы можете легко обратиться к папке ресурсов с помощью чего-то вроде этого:

this.class.getResource("Mydirectory/SubDirectory");
0 голосов
/ 17 февраля 2012

Военные файлы не всегда раскрываются при развертывании на сервере приложений, поэтому вполне возможно, что относительный путь не будет существовать в файловой системе вообще .

Лучшие ставкииспользовать getResource из загрузчика классов, который будет возвращать вещи в пути к классам (каталог WEB-INF / lib и т. д.), или использовать метод getResource () ServletContext для поиска вещей в сетисамо приложение.

0 голосов
/ 17 февраля 2012

Если вы сомневаетесь, как работают родственные пути, всегда лучше сделать что-то подобное:

System.out.println(new File("/my/desired/directory").getAbsolutePath());

Это выведет путь, по которому classpath будет искать файлы.

Предполагая:

  • каталог веб-приложений контейнера сервлетов находится в: /var/lib/tomcat6/webapps
  • Ваше веб-приложение называется my-webapp.war

Вы должны увидеть следующий вывод: /var/lib/tomcat6/webapps/my-webapp/my/desired/directory

Другой указатель: вы упомянули, что ищете каталог webapp.Надеюсь, вы знаете, что этот каталог не окажется в *.war - , его содержимое будет .

...