Развертывание каталога Eclipse WebContent в Tomcat - PullRequest
1 голос
/ 11 марта 2012

В Eclipse структура папок при создании динамического веб-проекта равна

[srikanth@hana Sample]$ ls -R
.:
build  src  WebContent

./build:
classes

./build/classes:

./src:

./WebContent:
index.html  META-INF  scripts  WEB-INF

./WebContent/META-INF:
MANIFEST.MF

./WebContent/scripts:
jquery-1.7.1.js

./WebContent/WEB-INF:
lib  web.xml

./WebContent/WEB-INF/lib:

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

Это структура папок в каталоге веб-приложений Tomcat в приложении:

[srikanth@hana Sample]$ ls -R 
.:
build  index.html  META-INF  scripts  src  WEB-INF

./build:
classes

./build/classes:

./META-INF:
MANIFEST.MF

./scripts:
jquery-1.7.1.js

./src:

./WEB-INF:
lib  web.xml

./WEB-INF/lib:

Итак, теперь я могу просто перейти к http://localhost:8080/Sample и правильно перейти к index.html

Что я делаю не так?Почему это не сработало, просто скопировав приложение из Eclipse в каталог tomcat webapps напрямую?Почему я должен изменить структуру каталогов?

Ответы [ 3 ]

5 голосов
/ 09 сентября 2014

У меня была такая же проблема, ./WebContent/index.html не появилась в экспортированном Eclipse .war.Это произошло в моей новой системе Eclipse после того, как я воссоздал рабочий проект из моей старой системы с Kepler Eclipse в новую систему с Luna Eclipse.

Я исправил это, перейдя в Project / Properties / Deployment Assembly .Я обнаружил, что у старой работающей системы было это правило, в то время как в моих новых нерабочих системах это правило отсутствовало ...

Source      = /WebContent
Deploy Path = /

Я исправил это в новой системе, нажав "Добавить ..." идобавление отсутствующего правила.

2 голосов
/ 11 марта 2012

Eclipse позволяет развертывать веб-приложение непосредственно на сервере, без необходимости что-либо копировать самостоятельно. Он также позволяет создавать развертываемый файл war, когда вы готовы к развертыванию на тестовом или производственном сервере.

Откройте представление «Серверы», щелкните правой кнопкой мыши и выберите создание нового сервера. После создания щелкните правой кнопкой мыши на сервере и выберите, чтобы добавить в него свое веб-приложение. И тогда Eclipse развернет ваше веб-приложение на сервере.

Вы не должны вручную что-либо копировать из Eclipse. И если вам нужно или вы хотите сделать это, то вам, вероятно, следует использовать какой-нибудь ant-скрипт, который генерирует правильную структуру развертывания. Эта структура описана в спецификации сервлета. Он должен иметь в корневом каталоге веб-приложения каталог WEB-INF, содержащий:

  • classes: каталог, содержащий ваши классы
  • lib: каталог, содержащий все jar-файлы, от которых зависит ваше приложение
  • web.xml дескриптор развертывания веб-приложения

Все остальные каталоги и файлы, не относящиеся к WEB-INF, могут обслуживаться веб-контейнером.

1 голос
/ 11 марта 2012

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

Не уверен, что вы имеете в виду if I moved all the directories and files under WebContent directory a level above, it worked fine здесь и что вы имеете в виду, говоря a level above.

То, что вы должны сделать, это не копировать что-либо вручную, а щелкнуть правой кнопкой мыши на проекте и выбрать опцию Export as WAR.
Это создаст файл с именем Project.war, который содержит правильную структуру файла, т.е. WEB-INF и т. Д., Которые вы должны положить под кота webapps dir

...