Развертывание файла WAR дает мне код состояния 404 на Tomcat? - PullRequest
25 голосов
/ 29 июля 2010

Я довольно новичок в Tomcat.Мне просто удалось построить проект и экспортировать его как файл WAR.Я попытался вручную скопировать файл WAR в папку Tomcat, а затем перезапустить.Он создал структуру папок и все, но я получаю 404 код состояния, когда я пытаюсь добраться до приложения.Я попытался развернуть его через панель администрирования Tomcat, но у меня такое же поведение.Я делаю что-то в корне неправильно?

Ответы [ 9 ]

11 голосов
/ 29 июля 2010

Предполагая, что у вас есть полные права для установки Tomcat, попробуйте перейти на http://localhost:8080/manager/html/, если вы не знаете пароль для входа в эту область, найдите файл tomcat-users.xml в каталоге ${tomcat-installation}/conf и это должно иметь это. Если в нем нет записей, вам нужно добавить в него следующую запись:

<user username="username" password="password" roles="admin,manager" />

Посмотрите, отображается ли ваше приложение на этом экране, и если это так, нажмите на ссылку и посмотрите, получится ли это где-нибудь. Если этого не произойдет, я предлагаю последовать совету ifishers и просмотреть файлы журналов, чтобы увидеть, нет ли в нем ошибок.

Но вкратце, скорее всего что-то напортачило с web.xml

вашего проекта.
4 голосов
/ 21 апреля 2015

У меня такая же проблема. Моя проблема в том, что имя моего приложения и имя файла war отличаются. Я изменил имя файла войны на имя моего приложения.

Здесь, когда ваше приложение развернуто, tomcat автоматически извлекает ваш военный файл с тем же именем. В моем случае мой сервис называется my-web-service (то есть https://localhost:8080/my-web-service/), а мой файл war - MY-java-connector-0.0.1-SNAPSHOT.war (это имя папки моего проекта). ищет папку my-web = service и находит папку epicor-java-connector-0.0.1-SNAPSHOT. Переименуйте папку в my-web = service.war, и она работает.

3 голосов
/ 28 июля 2015

У меня была та же проблема, моя проблема заключалась в том, что я копировал файл через sftp прямо в каталог веб-приложений tomcat, что могло вызвать проблему опроса, приводящую к неправильному развертыванию.Tomcat следит за каталогом веб-приложений, и когда он видит .xml, он взламывает и делает свое дело, проблема в том, что, возможно, все еще не было скопировано.: (

Лучше всего создать промежуточную папку, переместить или скопировать войну в эту папку, а затем использовать команду linux mv для ее перемещения в веб-приложения - mv является атомарным, поэтому tomcat не будет ничего делать, пока операция не завершится.завершено.

Магия.

Кредит переходит к очень случайному сообщению, которое я нашел на javarance, что, в свою очередь, приводит к: http://pub.admc.com/howtos/tomcat/ch02.html#stagedir-section

Надеюсь, это поможет кому-то еще:) * +1010 *

3 голосов
/ 29 июля 2010

Мое лучшее предположение, что вы не настроили приветственные файлы в своем файле web.xml.Если вы идете в / app /, вам нужно иметь доступный файл по умолчанию.Как правило, люди либо создают index.html, либо у них есть параметры файла приветствия, указывающие пользователю правильный jsp.

2 голосов
/ 03 сентября 2018

В более поздние времена это условие может возникнуть, если JAVA_HOME указывает на более раннюю версию Java, чем код в WAR. Tomcat может использовать JAVA_HOME, чтобы определить JRE_HOME, который он показывает после запуска startup.bat в каталоге Tomcat BIN. Хотя Tomcat может быть доволен самой версией Java, которую он получает, для приложения этого может быть недостаточно. В моем случае Tomcat 8.0.49 работал нормально с JDK1.7, хотя приложение вообще не инициализировалось (да, это было приложение Spring Boot, WAR распаковывалось, но это все) - без каких-либо ошибок. После установки JAVA_HOME в расположение JDK1.8 проблема была решена.

1 голос
/ 18 августа 2017

Я тоже столкнулся с этой проблемой.

Мое простое обходное решение - изменить путь в docBase.

проблема возникает, когда

docBase=".../tomcat/webapps/app_name.war";

проблема решена с помощью

docBase=".../tomcat/webapps/app_foldername/web"
0 голосов
/ 05 октября 2017

FWIW У меня возникла эта проблема, и я исправил ее, обнаружив, что обращаюсь к неправильному хосту, например «http://wronghost:8080/why_is_this_war_not_there"», поэтому, если он говорит «XX.war успешно развернут» в catalina.out / localhost. *. Out, чтоможет быть подсказкой для последователей.

0 голосов
/ 29 октября 2015

У меня была такая же проблема с tomcat, и я просто исправил ее, заставив мою IDE создать файл web.xml.Мой пропал без вести.Это развернет проект, но я все равно получу ошибку 404.Я прочитал несколько из этих уроков, но безрезультатно.Я где-то читал, что файл web.xml необходимо правильно настроить.Пошел искать web.xml в папке WEB-INF, и там не было ни папки, ни файла web.xml.Я сделал быстрый гугл о том, как создать на моей IDE, а затем скомпилировал мою программу с выводом web.xml, и это решило проблему для меня.Надеюсь, это поможет.Ура!

0 голосов
/ 29 июля 2010

Вы пробовали

localhost:8080/app

, предполагая, что ваш war-файл - app.war?

отредактируйте для комментария - тогда ваш web.xml облажался.

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