powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Компоновка web-приложения на сервере tomcat
11 сообщений из 11, страница 1 из 1
Компоновка web-приложения на сервере tomcat
    #39264323
faustgreen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть web-проект (создавался как maven проект в eclipse) со структурой папок:

Код: java
1.
2.
3.
4.
5.
6.
src
|__main
       |__java
       |__resources
       |           |__log4.xml
       |__webapp



При стандартной сборке проекта структура *.war - файла получается следующей:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
projectName
             |__META-INF
             |__WEB-INF
             |              |__classes
             |              |            |__log4.xml
             |              |__lib
             |              |__web.xml
             |__*.jsp



при этом файлы из папки resourses попадают в паку classes. Мне показалось это не совсем правильным, и я с помощью Maven поменял компоновку и положил их в отдельную папку:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
   <build>
      <finalName>CSVImport</finalName>
      
      <resources>
      	<resource>
      	  <directory>src/main/resources</directory>
      	  <excludes>
      	    <exclude>**/log4j.*</exclude>
      	  </excludes>
      	</resource>
      	
      	<resource>
      	  <targetPath>../CSVImport/WEB-INF/resources</targetPath>
      	  <directory>src/main/resources</directory>
      	  <includes>
      	    <include>**/log4j.*</include>
      	  </includes>
      	</resource>
      </resources>
   </build>



Получил структуру:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
projectName
           |__META-INF
           |__WEB-INF
           |         |__classes
           |         |__lib
           |         |__resourses
           |         |           |__log4.xml
           |         |__web.xml
           |__*.jsp



Как теперь заставить Log4j видеть конфигурационный файл log4j.* и стоит ли этим вообще замарачиваться? (Нужно ли отдельно располагать классы и файлы ресурсов, например *.ini, *.properties, нужно ли разбрасывать их по папкам и подпапкам в папке ..\tomcat\webapps\MyProject\?).
...
Рейтинг: 0 / 0
Компоновка web-приложения на сервере tomcat
    #39264328
faustgreen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или компоновка важна только в самом проекте(в нем мы создаем нужный каталоги и подкаталоги для хранения определенных типов файлов, для большей ясности) , а выходной *.war файл валим все в кучу, да и черт с ним ?
...
Рейтинг: 0 / 0
Компоновка web-приложения на сервере tomcat
    #39264329
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кому важна? Чем не устроила стандартная?
...
Рейтинг: 0 / 0
Компоновка web-приложения на сервере tomcat
    #39264335
faustgreen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подумал, что мешанина разных типов файлов при их большом количестве в одной папке может усложнить работу с приложением. Опыта нет, поэтому и спрашиваю.
...
Рейтинг: 0 / 0
Компоновка web-приложения на сервере tomcat
    #39264347
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
faustgreenПодумал, что мешанина разных типов файлов при их большом количестве в одной папке может усложнить работу с приложением.
И а какой папке у тебя большое кол-во файлов?

Лично у меня в classes всего лишь одна подпапка "com", больше там вообще ничего нет ))) Думаю даже пара (да хоть десяток) настроечных xml - тоже сложно назвать "большое кол-во" разных типов файлов.

Но у меня настройки вынесены отдельно, складывать их в проект считаю не очень удобным для сопровождения.
...
Рейтинг: 0 / 0
Компоновка web-приложения на сервере tomcat
    #39264350
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
faustgreenКак теперь заставить Log4j видеть конфигурационный файл log4j.*Поручить системному администратору настроить log4j для контейнера и вообще убрать его из вашего проекта.
...
Рейтинг: 0 / 0
Компоновка web-приложения на сервере tomcat
    #39264456
faustgreen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevНо у меня настройки вынесены отдельно, складывать их в проект считаю не очень удобным для сопровождения.
Есть еще небольшой вопрос, в этом же проекте из класса отвечающего за соединение с бд обращаюсь к файлу с данными соединение с базой. Путь к файлу получаю так:
Код: java
1.
new File("").getAbsolutePath()+"\\webapps\\ProectName\\WEB-INF\\resources\\DBData.ini"

- дома все работало. Сегодня принес *.war на работу, положил в папку webapps (tomcat) и настроечный ini не нашелся. Посмотрел причину - в первом случае File("").getAbsolutePath() указывает на корневую папку tomcat, во втором - на папку bin в корне tomcat (Версии tomcat дома и на работе отличаются). Вопрос: как получить отноительный путь к файлу настроек, чтобы при переносе с одного компа на другой не нужно было ничего менять? А если настройки выносить из проекта - то путь к файлу указывается абсолютный ?
...
Рейтинг: 0 / 0
Компоновка web-приложения на сервере tomcat
    #39264472
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Если положить в classes, то можно через Class Loader брать как ресурс:
https://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html#getResource(java.lang.String)
https://docs.oracle.com/javase/7/docs/api/java/lang/ClassLoader.html#getResourceAsStream(java.lang.String)

2. Лично я, просто путь к своим настроечным файлам задаю в web.xml и беру как
servletContext.getInitParameter( .... );

IMHO & AFAIK
...
Рейтинг: 0 / 0
Компоновка web-приложения на сервере tomcat
    #39264531
Valery Shiskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
faustgreen,

Не пойму, как вообще, что дома, что на работе вы из war архива предложенным способом что-то пытаетесь достать. Конечно, контейнер может после deploy на него распаковать war в webapps, но это не факт. Вам надо использовать API для zip или определить FileSystem для zip.
...
Рейтинг: 0 / 0
Компоновка web-приложения на сервере tomcat
    #39264541
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery ShiskinНе пойму, как вообще, что дома, что на работе вы из war архива предложенным способом что-то пытаетесь достать. Конечно, контейнер может после deploy на него распаковать war в webapps, но это не факт. Вам надо использовать API для zip или определить FileSystem для zip.
Нафига?

getResourceAsStream само все сделает, зачем изобретать велосипед
...
Рейтинг: 0 / 0
Компоновка web-приложения на сервере tomcat
    #39264557
Valery Shiskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,

Согласен. Из web приложения так и надо делать. А автору поста я просто указал, что war архив и папка в стандартной файловой системе - это не одно и тоже.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Компоновка web-приложения на сервере tomcat
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]