2013-08-16 4 views
2

Я создаю свой первый файл WAR. Я экспериментировал с синтаксисом ant buildfile, и первая часть моего файла сборки принимает содержимое из моего проекта Eclipse и помещает его в папку /dist, которая затем будет зашита в WAR-файл на последующих этапах.Структура планирования для файла WAR

Мне нужна помощь в структурировании вывода, чтобы файл WAR имел все необходимое содержимое в правильных местах для выполнения сервером Tomcat 7. Пожалуйста, сократите мне слабину, потому что это мой первый файл WAR.

Текущий проект моего файла построения создает папку Dist со следующей структурой:

dist/META-INF/MANIFEST.MF 
dist/WEB-INF/classes/myapp/package1/ (contains 12 .class files) 
dist/WEB-INF/classes/myapp/package2/ (contains 7 .class files) 
dist/WEB-INF/jsp (contains 5 .jsp files) 
dist/WEB-INF/lib (contains 16 .jar files) 
dist/WEB-INF/web.xml 
dist/image1.gif 
dist/image2.gif 
dist/image3.gif 
dist/image4.gif 

Как мне нужно изменить структуру таким образом, чтобы полученный файл WAR может использоваться Tomcat 7 сервера обслуживать до мое веб-приложение для конечных пользователей?

В частности,
1.) Должен ли я включать файлы .java в dist/WEB-INF/classes/... или просто помещать файлы .class?
2.) Следует ли добавить JAR-библиотеки JRE в библиотеку dist/WEB-INF/lib? Эти системные JAR находятся в рабочем пространстве Eclipse, но я не знаю, нужны ли они в WAR-файле.
3.) web.xml в правильном месте?
4.) Должны ли мои файлы .gif оставаться в корневом каталоге?
5.) являются ли мои файлы .jsp в нужном месте?
6.) где myapp.xml go? myapp.xml находится в корневом каталоге моего рабочего пространства Eclipse и кажется необходимым при загрузке myapp в мой экземпляр localhost сервера Tomcat. Требуется ли в файле WAR myapp.xml? Или структура WAR-файла делает то, что в противном случае делало бы myapp.xml?

Пожалуйста, обратите внимание, что мои классы сервлет контролировать весь доступ к моим файлам JSP, и каждый сервлет конкретизирует свой собственный JSP с синтаксисом:

RequestDispatcher jsp = context.getRequestDispatcher("/WEB-INF/jsp/home.jsp"); 

Весь доступ к контенту сайта через URL-адрес, определенный сервлет web.xml в отображение.

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

+0

Какой IDE вы используете? Попытайтесь создать из него военный файл. Также см. Http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html. –

+0

@AleksandrM спасибо. Я использую eclipse. Я пытался создать военные файлы из него, но получал 404 и 500 ошибок. Поэтому я пойду глубже, чтобы попытаться понять, как это работает. Ссылка, которую вы отправили, не будет загружена в моем браузере. – CodeMed

+0

Если вы не используете maven, тогда создайте Dynamic Web Project в eclipse. –

ответ

2

Я сделаю все возможное:

1.) Я должен включать .java файлы в Dist/WEB-INF/классы/... или просто поместить файлы .class там?

Здесь должны быть нужны только файлы .class.

2.) Должен ли я добавлять банки JRE System Library в dist/WEB-INF/lib?

Не требуется.

3.) web.xml в нужном месте?

Выглядит хорошо.

4.) Должны ли мои файлы .gif оставаться в корневом каталоге?

Хотя не обязательно, я бы предпочел «image.jar» (или «resource.jar» или что-то еще), чтобы все было в порядке.

5.) являются ли мои .jsp-файлы в нужном месте?

Не уверен, но я думаю, что каталог jsp обычно будет на одном уровне, из WEB-INF и непосредственно в вашей папке dist.

6.) где находится myapp.xml?

Я не знаю, что это такое, поэтому я не мог сказать.

+0

Спасибо. +1 за попытку помочь.И кредит для ответа, так как вы были единственным в форме ответа, и вы более или менее ответили на мои вопросы, а также некоторую помощь от комментариев выше. – CodeMed

+0

5.) нет смысла публиковать JSP-файлы, на самом деле это может показать ценную информацию злоумышленника, поэтому держать их в WEB-INF - хорошая идея. – marc82ch

+0

@ marc82ch Спасибо за разъяснение. – splungebob

1

Посмотрите здесь хорошее объяснение:

http://www.openscope.net/2010/01/25/war-deployment-file-structure/

В частности, только .class файлы находятся в каталоге/классов, и только .jars перейти в каталог/Lib. Помимо этих и web.xml, все остальное (например, без java-файлов, таких как html, css, js, другие файлы) можно поместить в корневой каталог и получить доступ к корневому URL-адресу вашего URL-адреса приложения, которое будет развернуто.

Смежные вопросы