Я также пытался 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
перед развертыванием приложения на сервере. В некоторых случаях я был сбит с толку этим поведением.