Web.xml отсутствует, а <failOnMissingWebXml> - true

Рассмотрим:

Введите описание изображения здесь

Когда я создаю простой Maven проект в Eclipse, я получаю эту ошибку:

web.xml отсутствует, а <failOnMissingWebXml> - правда

Как я могу исправить эту проблему?

Ответ 1

Вы также можете сделать это:

  • Щелкните правой кнопкой мыши Дескриптор развертывания в Проводнике проекта.
  • Выберите Создать дескриптор дескриптора развертывания.

Он создаст папку WEB-INF в src/main/webapp и web.xml.

введите описание изображения здесь

Ответ 2

Это ошибка maven. В нем говорится, что он ожидает файл web.xml в вашем проекте, потому что это веб-приложение, как указано <packaging>war</packaging>. Однако для последних веб-приложений файл web.xml является полностью необязательным. Мейвену нужно догнать эту конвенцию. Добавьте это в свой maven pom.xml, чтобы maven догнал, и вам не нужно добавлять бесполезный web.xml в ваш проект:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>

Это лучшее решение, чем добавление пустого web.xml, потому что таким образом ваш конечный продукт остается чистым, вы просто меняете свои параметры сборки.

Для более точных версий maven вы также можете использовать более короткую версию:

<properties>
    <failOnMissingWebXml>false</failOnMissingWebXml>
</properties>

Ответ 3

Если у вас уже есть web.xml под /src/main/webapp/WEB -INF, но вы по-прежнему получаете сообщение об ошибке "web.xml отсутствует и установлен в true", вы можете проверить, включили ли вы /src/main/webapp в источнике проекта.

Ниже приведены шаги, которые вы можете выполнить:

  • Вы можете проверить это, щелкнув правой кнопкой мыши свой проект и откройте его диалог свойств, а затем "Развертывание сборки", где вы можете добавить папку /src/main/webapp. Сохраните настройку, а затем
  • Перейдите в меню Eclipse Project → Clean... и очистите проект, и ошибка должна исчезнуть.

(я проверил это с Eclipse Mars)

Ответ 4

У меня та же проблема. После изучения и поиска в Google, я решил свою проблему:

Щелкните правой кнопкой мыши папку проекта, перейдите к Java EE Tools, выберите Generate Deployment Descriptor Stub. Это создаст web.xml в папке src/main/webapp/WEB-INF.

Ответ 5

Если вы используете Spring Tool Suite, опция для создания дескриптора дескриптора развертывания перемещается в Java EE Tools, поэтому вы:

  • Щелкните правой кнопкой мыши на проекте
  • Выберите Инструменты Java EE
  • Выберите Создать опцию дескриптора дескриптора развертывания

Это создаст файл web.xml внутри папки src/main/webapp/WEB-INF/и, конечно, удалит ошибку из файла Maven pom.xml.

введите описание изображения здесь

Ответ 6

Вы также можете сделать это, что менее подробно

<properties>
    <failOnMissingWebXml>false</failOnMissingWebXml>
</properties>

Ответ 7

Eclipse распознает неправильный каталог по умолчанию webapp. Поэтому мы должны четко обозначить его через maven-war-plugin.

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-war-plugin</artifactId>
      <version>3.0.0</version>
      <configuration>
        <webappDirectory>src/main/webapp</webappDirectory>
      </configuration>
    </plugin>
  </plugins>
</build>

После сохранения этой настройки ошибка не будет возникать, если ее удалить. (Я не могу объяснить, почему.)

Ответ 8

У меня была такая же проблема, хотя у меня была папка 'src/main/webapp/WEB-INF/' с правильным web.xml.

Проблема исчезла после того, как я восстановил конфигурацию (maven- > eclipse) с помощью Maven build.. Я выполнил mvn eclipse:clean eclipse:eclipse

И затем я использовал Maven -> Update Project, чтобы добавить (eclipse- > maven) специальные параметры плагина.

Ответ 9

Сделайте это:

Щелкните правой кнопкой мыши на дескрипторе развертывания и выберите "Создать дескриптор дескриптора развертывания".

Ответ 10

Я столкнулся с этой проблемой только в eclipse, все отлично работало в командной строке Maven, и мой файл web.xml существовал. Это был зрелый проект (уже развернутый на производстве), на который повлияли. Моя проблема была привязана к метаданным затмения. Возникла проблема с одним из файлов в моей .settings/папке, в частности, org.eclipse.wst.common.component был изменен. Я смог восстановить этот файл до его предыдущей версии, которая разрешила проблему в моем случае.

Обратите внимание, что ответ Yuci не работает для меня, когда я попытался щелкнуть узел "Сборка развертывания" в свойствах eclipse, у меня появилась ошибка, которая говорит, что "отображаемая на данный момент страница содержит недопустимые значения".

Ответ 11

Не имеет смысла создавать web.xml, а просто elcipse хочет его, даже в этом нет необходимости. Это так, если у вас встроенный или живой сервлет conatiner без xml cfg, например, spring -boot. Вы просто изменяете JavaEE (бесполезный материал) в eclipse на уровне проекта или глобальном

Eclipse/STS>Windows>Preferences>JavaEE>Doclet>Webdoclet> "uncheck" DeploymentDescriptor > OK

Ответ 12

Создайте папку WEB-INF в src/webapp и включите страницу web.xml внутри папки WEB-INF, затем

Ответ 13

Удалить файлы из -web/.setting & -admin/.setting

1

Ответ 14

Для проекта с web.xml настоящим Project → Properties → Assembly Assembly, где вы можете добавить папку src/main/webapp. Сохранить изменения. Очистите проект, чтобы начать работу.

Для проекта с web.xml нет Установите failOnMissingWebXml в false в pom.xml в теге свойств.