Ответы:
Вы также можете сделать это так:
Он сгенерирует папку WEB-INF в src / main / webapp и web.xml в ней.
web.xml
файл. Вы должны исправить эту проблему в инструменте сборки (т.е. 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>
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, опция для создания заглушки дескриптора развертывания перемещается в Инструменты Java EE, поэтому вы:
Это создаст файл web.xml в папке src / main / webapp / WEB-INF / и, конечно, удалит ошибку из файла Maven pom.xml.
У меня та же проблема. После изучения и поиска в Google я решил свою проблему:
Щелкните правой кнопкой мыши папку проекта, перейдите 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) специфичные для плагина опции.
Я столкнулся с этой проблемой только в Eclipse, все работало нормально в командной строке Maven, и мой файл web.xml существовал. Это был зрелый проект (уже развернутый в производстве), который подвергся воздействию. Моя проблема была связана с метаданными затмения. Возникла проблема с одним из файлов в моей папке .settings /, в частности, был изменен org.eclipse.wst.common.component. Мне удалось восстановить этот файл до предыдущей версии, что решило проблему в моем случае.
Обратите внимание, что ответ Юци не сработал для меня, когда я попытался нажать на Deployment Assembly в свойствах eclipse, я получил сообщение об ошибке «текущая страница содержит недопустимые значения».
Для Project с web.xml представьте Project -> Properties -> Deployment Assembly, где вы можете добавить папку src / main / webapp. Сохранить изменения. Очистите проект, чтобы начать.
Для проекта с отсутствующим web.xml Установите для failOnMissingWebXml значение false в pom.xml в теге свойств.
Сделай это:
Нажмите правой кнопкой мыши на дескриптор развертывания и выберите «Создать заглушку дескриптора развертывания».
Создавать web.xml не имеет смысла, просто elcipse хочет этого, даже в этом нет необходимости. Это тот случай, если у вас есть встроенный сервлет conatiner или вы живете без xml cfg, как это делает spring-boot. Вы просто набираете JavaEE (бесполезные вещи) в затмении на уровне проекта или в глобальном масштабе.
Eclipse/STS>Windows>Preferences>JavaEE>Doclet>Webdoclet> "uncheck" DeploymentDescriptor > OK
Выберите ваш проект и выберите опцию «Дескриптор развертывания», а затем выберите «Создать заглушку дескриптора развертывания»
Шаг: Выберите ваш проект и выберите опцию «Дескриптор развертывания», а затем выберите «Создать заглушку дескриптора развертывания». Проблема в том, что нам не всегда нужен web.xml, поэтому лучше добавить false в 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
. Это неявный плагин, в котором значение по умолчанию для этого свойства конфигурации равно true. Вам необходимо явно объявить это и установить для свойства конфигурации значение false. Подробнее здесь . Или вы можете добавить пустой web.xml