отсутствует web.xml и <failOnMissingWebXml> установлен в true

Рассмотрим:

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

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

  

web.xml отсутствует, а для <failOnMissingWebXml> установлено значение   правда

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

117 голосов | спросил Yogesh Doke 5 PM00000050000004331 2015, 17:13:43

17 ответов


0

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

  1. Нажмите правой кнопкой мыши Дескриптор развертывания в Обозревателе проектов .
  2. Выберите Создать заглушку дескриптора развертывания .

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

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

ответил Wojciechu 30 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 30 Sep 2015 20:35:35 +0300 2015, 20:35:35
0

Это ошибка maven. В нем говорится, что он ожидает файл web.xml в вашем проекте, потому что это веб-приложение, как указано <packaging>war</packaging>. Однако для недавних веб-приложений файл web.xml не является обязательным. Maven должен догнать эту конвенцию. Добавьте это в свой 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>
ответил Martijn Burger 11 32015vEurope/Moscow11bEurope/MoscowWed, 11 Nov 2015 22:53:19 +0300 2015, 22:53:19
0

Если у вас уже есть файл web.xml в каталоге /src /main /webapp /WEB-INF, но вы по-прежнему получаете сообщение об ошибке «web.xml отсутствует и имеет значение true», вы можете проверить, добавили ли вы /src /main /webapp в исходном коде вашего проекта.

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

  1. Вы можете проверить это, щелкнув правой кнопкой мыши по своему проекту и открыв диалоговое окно «Свойства», а затем «Сборка развертывания», где вы можете добавить папку /src /main /webapp. Сохраните настройку, а затем
  2. Перейдите в меню Проект Eclipse -> Очистите ... и очистите проект, и ошибка должна исчезнуть.

(я проверял это с помощью Eclipse Mars)

ответил Yuci 22 72015vEurope/Moscow11bEurope/MoscowSun, 22 Nov 2015 21:08:14 +0300 2015, 21:08:14
0

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

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

ответил Tung 24 PM000000100000003631 2015, 22:18:36
0

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

<properties>
    <failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
ответил liam mooney 20 FebruaryEurope/MoscowbSat, 20 Feb 2016 08:22:47 +0300000000amSat, 20 Feb 2016 08:22:47 +030016 2016, 08:22:47
0

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

  1. Нажмите правой кнопкой мыши на своем проекте .
  2. Выберите Инструменты Java EE .
  3. Выберите Создать заглушку дескриптора развертывания .

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

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

ответил milan.latinovic 22 +03002016-10-22T16:32:08+03:00312016bEurope/MoscowSat, 22 Oct 2016 16:32:08 +0300 2016, 16:32:08
0

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>

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

ответил yukihane 30 32016vEurope/Moscow11bEurope/MoscowWed, 30 Nov 2016 19:33:48 +0300 2016, 19:33:48
0

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

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

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

ответил Boris Treukhov 21 PMpThu, 21 Apr 2016 15:03:57 +030003Thursday 2016, 15:03:57
0

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

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

ответил The Gilbert Arenas Dagger 8 J0000006Europe/Moscow 2016, 16:32:05
0

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

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

ответил Nuno Marques 6 Jpm1000000pmWed, 06 Jan 2016 15:13:03 +030016 2016, 15:13:03
0

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

Eclipse/STS>Windows>Preferences>JavaEE>Doclet>Webdoclet> "uncheck" DeploymentDescriptor > OK
ответил cforce 1 TueEurope/Moscow2015-12-01T18:49:59+03:00Europe/Moscow12bEurope/MoscowTue, 01 Dec 2015 18:49:59 +0300 2015, 18:49:59
0

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

ответил basavaraj Marapur 2 Maypm17 2017, 13:05:42
0

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

1

ответил jun gao 10 PM00000040000000031 2017, 16:52:00
0

Для проекта с присутствующим web.xml Проект -> Свойства -> Сборка развертывания, в которую можно добавить папку src /main /webapp. Сохранить изменения. Очистите проект, чтобы начать работу.

Для проекта с отсутствующим web.xml Установите для failOnMissingWebXml значение false в pom.xml в теге свойств.

ответил Saurav 29 AM00000080000000231 2017, 08:57:02
0

Выберите свой проект и выберите опцию «Дескриптор развертывания» и затем выберите «Создать заглушку дескриптора развертывания»

ответил Christina Vimala 16 MaramFri, 16 Mar 2018 09:57:48 +03002018-03-16T09:57:48+03:0009 2018, 09:57:48
0

Щелкните правой кнопкой мыши по проекту, перейдите на Maven -> Обновить проект ... , затем проверьте Принудительное обновление снимков /выпусков , затем нажмите ОК . Это сделано!

ответил João V. 18 PMpWed, 18 Apr 2018 14:40:21 +030040Wednesday 2018, 14:40:21
0

Шаг: выберите ваш проект, выберите опцию «Дескриптор развертывания» и затем выберите «Создать заглушку дескриптора развертывания». Проблема в том, что не всегда нужен web.xml, поэтому лучше добавить false в pom.xml

ответил Lotchi Dagbo 4 J000000Wednesday18 2018, 19:34:09

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132