Відповіді:
Ви також можете зробити це так:
Він створить папку WEB-INF у src / main / webapp та web.xml у ній.
web.xml
файлом. Ви повинні виправити цю проблему в тому, щоб створити інструмент (тобто maven).
Це помилка 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>
Interface WebApplicationInitializer
цієї відповіді - це правильний підхід. Це розумний спосіб вирішити цю проблему - немає сенсу додавати web.xml
після того, як робити кроки, щоб жити без неї!
<properties><failOnMissingWebXml>false</failOnMissingWebXml></properties>
достатньо замість більш детальних налаштувань конфігурації плагінів.
Якщо у вас вже є web.xml під / src / main / webapp / WEB-INF, але ви все одно отримуєте помилку "web.xml відсутній і встановлено значення true", ви можете перевірити, чи включено ви / src / main / webapp у джерело вашого проекту.
Ось такі кроки:
(Я перевірив це за допомогою Eclipse Mars)
Якщо ви використовуєте Spring Tool Suite, параметр Generate Descript Stub Describrov переміщується під Java EE Tools, тож ви:
Це створить файл web.xml всередині папки src / main / webapp / WEB-INF / і, звичайно, видалить помилку з файлу pom.xml Maven.
У мене така ж проблема. Вивчивши та гуглившись, я вирішив свою проблему:
Клацніть правою кнопкою миші на папці проекту, перейдіть до Java EE Tools
, виберіть Generate Deployment Descriptor Stub
. Це створить web.xml
у папці src/main/webapp/WEB-INF
.
Ви також можете зробити це, що є менш багатослівним
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
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>
Після збереження цього параметра помилка ніколи не виникне, якщо її видалити. (Я не можу пояснити, чому.)
У мене була така ж проблема, хоча я мав 'src/main/webapp/WEB-INF/'
папку з коректною web.xml
.
Проблема зникла після того, як я відтворив конфігурацію (maven-> eclipse), яку
Maven build..
я виконавmvn eclipse:clean eclipse:eclipse
І тоді я використовував Maven -> Update Project
для додавання (eclipse-> maven) плагінів конкретні параметри.
Я зіткнувся з цією проблемою лише у затемненні, у командному рядку Maven усе добре працювало, і мій файл web.xml існував. Це вплинуло на зрілий проект (вже розгорнутий у виробництві). Моя проблема була пов'язана з метаданими затемнення. Виникла проблема з одним із файлів у моїй .settings / folder, зокрема org.eclipse.wst.common.component було змінено. Мені вдалося відновити цей файл до його попередньої версії, яка вирішила проблему в моєму випадку.
Зауважте, що відповідь Ючі для мене не спрацювала, коли я намагався натиснути на Збірка розгортання у властивостях затемнення, я отримав помилку, яка сказала, що "поточна відображена сторінка містить недійсні значення".
Для Project з web.xml присутній Проект -> Властивості -> Асамблея розгортання, куди ви можете додати Folder src / main / webapp. Збережіть зміни. Очистіть проект, щоб розпочати роботу.
Для Project з web.xml не присутній Встановіть помилку falseOnMissingWebXml на false у pom.xml під тегом властивостей.
Зробити це:
Перейдіть і клацніть правою кнопкою миші на Дескрипторі розгортання та натисніть кнопку Створити Дескриптор розгортання.
Немає сенсу створювати web.xml просто бажаний elcipse, навіть у цьому немає потреби. Це так, якщо у вас вбудований серналевий конатинер або живуть без xml cfg, як це робить весняний завантажувач. Ви просто набираєте JavaEE (непотрібні речі) у затемненні на рівні проекту чи глобально
Eclipse/STS>Windows>Preferences>JavaEE>Doclet>Webdoclet> "uncheck" DeploymentDescriptor > OK
Виберіть проект та оберіть "Дескриптор розгортання", а потім оберіть "Створити заглушку дескриптора розгортання"
Крок: Виберіть проект та оберіть опцію "Дескриптор розгортання", а потім виберіть "Створити заглушку дескриптора розгортання". Проблема полягає в тому, що нам не завжди так потрібен web.xml, тому найкраще додавати помилку до pom.xml
Клацніть правою кнопкою миші на project --> New --> Other --> Standard Deployment Descriptor(web.xml)
потім натисніть кнопку Далі, це створить WEB-INF
папку з web.xml
файлом всередині.
Ось і зроблено.
Створіть папку WEB-INF у src / webapp і включіть сторінку web.xml всередину папки WEB-INF
maven-war-plugin
. Це неявний плагін, де значенням за замовчуванням для цього властивості конфігурації є істина. Потрібно чітко оголосити його та встановити властивість конфігурації значення false. Детальніше дивіться тут . Або ви можете додати порожній web.xml