Динамический веб-модуль 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

  1. Перейти в расположение рабочей области
  2. выберите папку вашего проекта
  3. .setting папка
  4. изменить "org.eclipse.wst.common.project.facet.core"
  5. изменить установленное facet = "jst.web" version = "3.0"