Динамический веб-модуль 3.0 - 3.1
У меня есть настроенное веб-приложение Spring 3.2.4.
Когда я сначала создаю приложение с Maven/pom.xml, я получил сообщение об ошибке web.xml.
сначала я попытался создать пустой web.xml. это был момент, когда грань проекта изменилась (и я не знаю почему). Он переключился с динамического веб-модуля 3.0 на 3.1, и это необратимо.
Как я могу изменить его снова в Dynamic Web Modules 3.0???
![enter image description here]()
Кроме того, я не могу удалить JAX-RS. Попытка этого приводит к:
Failed while uninstalling JAX-RS (REST Web Services) 1.0.
org.eclipse.jst.javaee.web.internal.impl.WebAppImpl cannot be cast to org.eclipse.jst.j2ee.webapplication.WebApp
Позже я узнал, что могу избежать ошибки компиляции Maven, вставив соответствующий плагин в pom.xml:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
Ответы
Ответ 1
У меня были подобные проблемы в затмении, и единственный способ исправить это для меня -
- Удалить веб-модуль
- Применить
- Измените версию модуля
- Добавить модуль
- Настроить (ссылку на дополнительную конфигурацию внизу диалогового окна)
- Применить
Просто убедитесь, что вы настроили веб-модуль перед его применением, поскольку по умолчанию он будет искать ваши веб файлы в /WebContent/, и это не то, что должна быть структура проекта Maven.
ИЗМЕНИТЬ:
Вот второй способ, если ничего не помогает
- Закройте eclipse, перейдите в проект в файловой системе, затем в папку .settings.
- Откройте
org.eclipse.wst.common.project.facet.core.xml
, сделать резервную копию и удалите запись в веб-модуле.
- Вы также можете изменить версию веб-модуля там, но опять же никаких гарантий.
Ответ 2
Если вы хотите использовать версию 3.1, вам необходимо использовать следующую схему:
-
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd
Обратите внимание, что 3.0 и 3.1 различны: в 3.1 нет упоминания о Солнце, поэтому простое изменение 3_0.xsd
на 3_1.xsd
не будет работать.
Вот как это должно выглядеть:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:web="http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee">
</web-app>
Кроме того, убедитесь, что вы используете последние версии в pom.xml
. То есть
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
...
</configuration>
</plugin>
и
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
Наконец, вы должны скомпилировать Java 7 или 8:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
Ответ 3
У меня была такая же проблема и исправлено это, отредактировав файл org.eclipse.wst.common.project.facet.core.xml.
В этом файле я смог изменить следующую строку
<installed facet="jst.web" version="3.1"/>
назад к
<installed facet="jst.web" version="3.0"/>
Казалось, это проблема для меня.
Ответ 4
Я работал на Win7, Tomcat7 с настройкой maven-pom на Eclipse Mars с включенным проектом maven.
На НЕ запущенном сервере мне пришлось менять только с 3.1 до 3.0 на этом экране:
![введите описание изображения здесь]()
Для меня важно отключить динамический веб-модуль! Затем измените версию и снова включите динамический веб-модуль.
Ответ 5
Откройте свойства проекта Eclipse, в графе "Проект" выберите "Динамический веб-модуль",... Нажмите "ОК".
Maven → Обновить проект
Ответ 6
В конкретном случае проблема возникает из-за maven-archetype-webapp, который выпущен для динамического webapp, граничащего с ver.2.5 (см. полученный web.xml и связанный с ним xsd) и связан с eclipse.
Когда вы пытаетесь изменить фасет проекта на динамический webapp > 2.5, структура папок src будет синтаксически изменяться (2.5 отличается от 3.1), но не физически.
Вот почему вы столкнетесь с исключительным исключением, если вы применитесь к изменениям.
Чтобы решить эту проблему, вы должны установить из конфигурации фасет проекта конфигурацию по умолчанию. Примените изменения, затем перейдя на путь сборки Java, вы должны удалить папку /src и создать папку /src/main/java по крайней мере (это также необходимо /src/main/resources и/src/test/java, чтобы быть (3.0, 3.1), а затем примените.
Ответ 7
Я открыл проект org.eclipse.wst.common.project.facet.core.xml и сначала изменил, затем удалил строку с тегом веб-модуля. Убирал проект и запускался на Tomcat каждый раз, но он все еще не запускался. Возвращаемая строка (как было) и очищенный проект. Открыли настройки Tomcat в Eclipse и вручную добавили проект в Tomcat startup (щелкните правой кнопкой мыши + Добавить и удалить). Нажмите на проект и выберите "Запустить на сервере"... и все было в порядке.
Ответ 8
1) Перейдите в свой проект и найдите каталог ".settings" этот
2) Откройте файл xml с именем:
org.eclipse.wst.common.project.facet.core.xml
3)
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="wst.jsdt.web"/>
<installed facet="java" version="1.5"/>
<installed facet="jst.web" version="2.3"/>
<installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>
Измените версию jst.web на 3.0 и версию java на 1.7 или 1.8 (база на вашем текущем с использованием версии jdk)
4) Измените файл web.xml
в каталоге WEB-INF
, пожалуйста, обратитесь к этой статье:
https://www.mkyong.com/web-development/the-web-xml-deployment-descriptor-examples/
5) Перейдите в файл pom.xml
и вставьте следующие строки:
<build>
<finalName>YOUR_PROJECT_NAME</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source> THIS IS YOUR USING JDK VERSION
<target>1.8</target> SAME AS ABOVE
</configuration>
</plugin>
</plugins>
</build>
Ответ 9
- Перейти в расположение рабочей области
- выберите папку вашего проекта
- .setting папка
- изменить "org.eclipse.wst.common.project.facet.core"
- изменить установленное facet = "jst.web" version = "3.0"