powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Сборка WAR-архива, как оставить некоторые файлы "за бортом"
5 сообщений из 5, страница 1 из 1
Сборка WAR-архива, как оставить некоторые файлы "за бортом"
    #38486223
veress
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Я новичок в Java и не надо кидаться помидорами)
Пишу курсовую. Dynamic Web Project в Eclipse.
Уже написал пару сервлетов, взаимодействие с БД, авторизацию (простенькую), и вспомнил, что есть требование - готовый проект должен быть представлен в виде war-архива.
Собирать решил Ant-ом, ибо с Maven-ом ещё успею в своей жизни "покучерявиться", и так как выбрал именно его, ответов типа "Делай на Maven" не стоит)

Так вот, проблема. В приложении структура моего проекта.
Накидал простенький скрипт паковки WAR:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<?xml version="1.0" encoding="UTF-8"?>
<project name="War packing/unpacking" basedir=".">
	<property name="warfile" value="../.antbuild/SOEEIP"/>
	
	<target name="unpack">
		<unwar src="${warfile}.war" dest="${warfile}" />
	</target>
	
	<target name="create">
		<war destfile="${warfile}.war" webxml="../WebContent/WEB-INF/web.xml" update="true">
			<classes dir="../build\classes"/>
			<fileset dir="../WebContent">
				<exclude name="WEB-INF/web.xml"/>
			</fileset>
		</war>
	</target>
</project>



И тут я понял: есть файл src/dao.properties в проекте, в котором лежат параметры подключения к БД, которые я считываю внутри кода и уже потом создаю подключение к БД.
Так вот, можно ли как-то этот файл с настройками оставить за бортом архива, чтобы при каждом изменении данных подключения к БД не приходилось перепаковывать? Или это в принципе не возможно? Я ещё плохо понимаю концепцию самих WAR-файлов и их дальнейшей судьбы в Tomcat.

Заранее спасибо за ответы, если они будут.
P.S. Если заметили какие-то ошибки, то буду благодарен за советы по их устранению.
P.P.S. Я смотрел в поиске по всем возможным запросам и читал FAQ-похожих тем не нашел. Если подобная тема есть - прошу прощения, что проглядел и буду благодарен за ссылочку.
...
Рейтинг: 0 / 0
Сборка WAR-архива, как оставить некоторые файлы "за бортом"
    #38486245
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В мануале Tomcat ищи раздел JNDI DataSource How to.
Направление мысли совершенно верное. Настройки БД нужно выносить из приложения в контейнер.
...
Рейтинг: 0 / 0
Сборка WAR-архива, как оставить некоторые файлы "за бортом"
    #38486292
veress
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

спасибо вам) Я словил маленькое состояние просветления.
По идее, настройки JNDI хранятся в файле context.xml, который у меня, кстати, ещё даже не создан.
Собственно, у меня сейчас не пул БД, а просто соединение через JDBC, что не особо круто.
Но, допустим, с этим я разобрался.
Можно ли оставить context.xml вне архива, и как, собственно, в Ant-скрипте указать, что он должен быть где-то за пределами?

UPD. Где-то среди мануалов Tomcat-a нашел следующее:
TomcatManualIn individual files (with a ".xml" extension) in the $CATALINA_BASE/conf/[enginename]/[hostname]/ directory. The name of the file (less the .xml extension) will be used as the context path. Multi-level context paths may be defined using #, e.g. foo#bar.xml for a context path of /foo/bar. The default web application may be defined by using a file called ROOT.xml.

Only if a context file does not exist for the application in the $CATALINA_BASE/conf/[enginename]/[hostname]/, in an individual file at /META-INF/context.xml inside the application files. If the web application is packaged as a WAR then /META-INF/context.xml will be copied to $CATALINA_BASE/conf/[enginename]/[hostname]/ and renamed to match the application's context path. Once this file exists, it will not be replaced if a new WAR with a newer /META-INF/context.xml is placed in the host's appBase.
...
Рейтинг: 0 / 0
Сборка WAR-архива, как оставить некоторые файлы "за бортом"
    #38486318
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
veressМожно ли оставить context.xml вне архива, и как, собственно, в Ant-скрипте указать, что он должен быть где-то за пределами?

Ant собирает сам проект. К конфигурации сервера он особого отношения не имеет, если только вы не собираетесь встраивать сервер в своё приложение или инсталятор.

veressUPD. Где-то среди мануалов Tomcat-a нашел следующее:
TomcatManualIn individual files (with a ".xml" extension) in the $CATALINA_BASE/conf/[enginename]/[hostname]/ directory. The name of the file (less the .xml extension) will be used as the context path. Multi-level context paths may be defined using #, e.g. foo#bar.xml for a context path of /foo/bar. The default web application may be defined by using a file called ROOT.xml.

Only if a context file does not exist for the application in the $CATALINA_BASE/conf/[enginename]/[hostname]/, in an individual file at /META-INF/context.xml inside the application files. If the web application is packaged as a WAR then /META-INF/context.xml will be copied to $CATALINA_BASE/conf/[enginename]/[hostname]/ and renamed to match the application's context path. Once this file exists, it will not be replaced if a new WAR with a newer /META-INF/context.xml is placed in the host's appBase.


[/quot]
Ну, дык, это же ответы на все ваши вопросы!
DataSource, кстати, можно создавать не только в context.xml приложения, но и в глобальном $CATALINA_BASE/conf/context.xml.
...
Рейтинг: 0 / 0
Сборка WAR-архива, как оставить некоторые файлы "за бортом"
    #38486372
veress
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

спасибо большое за оперативную помощь, по результату отпишусь об успехах и неудачах)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Сборка WAR-архива, как оставить некоторые файлы "за бортом"
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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