развернуть проект в Tomcat из Eclipse - PullRequest
5 голосов
/ 12 июля 2011

Я пытаюсь развернуть многомодульный проект Maven из Eclipse на локальный Tomcat. Проект имеет следующую структуру:

root [packaging: pom]
|
|--- domain [packaging: jar]
|
|--- manager [packaging: jar]
|
|--- web [packaging: war]

Я импортирую все проекты в Eclipse, затем добавляю фасет «Динамический веб-модуль» в веб-проект

enter image description here

На вкладке Runtime того же диалогового окна я настраиваю проект для использования (локальной) среды исполнения Apache Tomcat v6.0.

Затем я щелкаю правой кнопкой мыши по проекту и в меню выбираю «Запуск от имени -> Запуск на сервере». В следующем диалоговом окне я (снова?) Выбираю «Сервер Tomcat v6.0»

enter image description here

В следующем диалоговом окне я добавляю веб-проект в список настроенных проектов

enter image description here

Когда я нажимаю «Готово», из консольных сообщений появляется сообщение о том, что сервер запущен, но когда я в браузере захожу на http://localhost:8080/web/, я получаю 404. Я также пробовал http://localhost:8080/ и это также возвращает 404, что я делаю не так?

Ответы [ 2 ]

9 голосов
/ 12 июля 2011

Успех !!!

Когда я добавил динамический модуль, Eclipse неправильно создал каталог WebContent. Я удалил этот каталог и внес следующие изменения в файл в каталоге .settings с именем org.eclipse.wst.common.component

<wb-resource deploy-path="/" source-path="/src/main/webapp"/>
<!--
<wb-resource deploy-path="/" source-path="/WebContent"/>
-->
0 голосов
/ 12 июля 2011

Я также пытался http://localhost:8080/, и это также возвращает 404.

Я бы сделал вывод, что либо Tomcat не прослушивает порт 8080, поскольку в этом случае содержимое $CATALINA_HOME/webapps/ROOT/index.html отображается в качестве страницы приветствия. Возможно, вы захотите убедиться, что Tomcat в первую очередь настроен на прослушивание порта 8080. Файл $CATALINA_HOME/conf/server.xml должен иметь запись, аналогичную приведенной ниже:

<Server port="8005" shutdown="SHUTDOWN">
    ...
    <Service name="Catalina">
        ...
        <Connector port="8080" protocol="HTTP/1.1" 
                   connectionTimeout="20000" 
                   redirectPort="8443" />

Если вы поняли это правильно, но вы видите ответ 404, то, очевидно, что-то не так с конфигурацией. Либо $CATALINA_HOME/webapps/ROOT не существует, либо что-то еще, что вы можете определить, просмотрев журналы в каталоге $CATALINA_HOME/logs.

Когда я нажимаю «Готово», из консольных сообщений появляется сообщение о том, что сервер запущен, но когда я в браузере перехожу на http://localhost:8080/web/, я получаю 404

Если предположить, что Tomcat был успешно настроен, описанное поведение вероятно, если у вас нет файла приветствия, указанного в web.xml. Структура welcome-file-list аналогична приведенной ниже:

<web-app>
...
    <welcome-file-list>
        <welcome-file>somePage.html</welcome-file>
    </welcome-file-list>
...
</web-app>

Совершенно очевидно, что вам нужно иметь действительный HTML-код на странице приветствия. Вы также можете использовать JSP-страницу в качестве страницы приветствия.

Интеграция Maven с Eclipse

Я помещаю это в отдельный раздел, так как не уверен, правильно ли изначально настроен ваш проект Eclipse. Обычно для настройки проекта WTP в Eclipse можно использовать m2eclipse или maven-eclipse-plugin.

Если вы добавили характер Maven (используя плагин m2eclipse) в проект, то вы должны знать, что m2eclipse имеет тенденцию отменять любые изменения, которые могут конфликтовать с теми, которые он генерирует. Например, m2eclipse установит для версии Java фасет версию source, указанную для maven-compiler-plugin в вашем pom.xml.

Также может быть важно запустить фазу package перед развертыванием приложения на сервере. В некоторых случаях я был сбит с толку этим поведением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...