Не удается изменить версию фасета проекта Dynamic Web Module на 3.0?

249

Я использую maven для создания динамического webapp в Eclipse. Я добавил несколько папок, например src/test/java и src/test/resources. Также я изменил библиотеку в Java Build Path, чтобы получить JavaSE-1.7. Здесь все ОК.

Когда я попытался изменить динамический веб-модуль Facec проектов, что-то пошло не так. Я изменил Java на 1.7 в одном и том же месте. И он все еще сказал мне, не может изменить версию факела проекта Dynamic Web Module до 3.0.

Я изменил все, что повлияло бы на изменение, которое я думаю.

  • 0
    ХОРОШО. Я сожалею об этом. Когда я создаю новый проект Maven, архетипом является maven-archetype-webapp, а динамический веб-модуль - 2.3 в аспектах проекта после того, как я создал проект. Я хочу изменить версию Dynamic Web Module на 3.0, и у меня появилось сообщение «Невозможно изменить версию фасета проекта Dynamic Web Module на 3.0».
  • 0
    это сработало для меня: stackoverflow.com/questions/19661135/dynamic-web-module-3-0-3-1
Показать ещё 3 комментария
Теги:
maven

27 ответов

250
Лучший ответ

Я обновил свой web.xml

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">
    <display-name>Servlet 3.0 Web Application</display-name>
</web-app>

а затем просто Maven → Обновить проект...

  • 5
    Можете ли вы дать объяснение, почему это сработало?
  • 2
    maven -> обновление проекта добилось цели .. еще с 2.5
Показать ещё 5 комментариев
495

Другой способ - отредактировать сам файл конфигурации фасет проекта: org.eclipse.wst.common.project.facet.core.xml

Измените версию динамического веб-модуля в этой строке на 3.0 - <installed facet="jst.web" version="2.5"/>

И затем:

  • Щелкните правой кнопкой мыши проект (на панели Project Explorer).
  • Выберите Maven > Обновить проект (или нажмите Alt+F5)

Вы найдете этот файл в каталоге .settings в проекте Eclipse.

  • 3
    Спасибо. На самом деле я думаю, что мы должны сделать что-то еще, как указано выше, изменить версию веб-модуля в файле web.xml, если нет, то версия дескриптора развертывания не изменится на 3.0. И это ошибка в плагине Maven?
  • 10
    Похоже, что это единственный способ решить эту проблему, если в вашем проекте нет web.xml.
Показать ещё 12 комментариев
133

Я думаю, у меня была такая же проблема, как и вы. у моего web.xml была версия 2.5, в то время как проект имел (щелкните правой кнопкой мыши по Project- > Properties- > Progect Facets- > ) Dynamic Web Module 2.3. Хотя я пытался изменить версию с 2.3 до 2.5, ECLIPSE не разрешала этого. Решение. Я удалил галочку под заголовком "Динамический веб-модуль", я сохранил, и у меня был обновленный проект. Автоматическое повторное пробуждение входит в поле с правильной версией. Я использую Eclipse Kepler.

Надеюсь, что это полезно.

p.s.

посмотрите на комментарии Джонатана чуть ниже, очень полезно.

  • 1
    Отлично, это решило мою проблему, но не могли бы вы сказать, почему изначально не было разрешено установить динамический модуль.
  • 23
    @ Суреш, я думаю, что проблема, почему он не разрешал менять версию, заключается в том, что она заблокирована. Если щелкнуть правой кнопкой мыши на фасете «Динамический веб-модуль», отобразится опция «Разблокировать». После разблокировки, отмены проверки фасета DWM, повторного применения фасета и выполнения обновления проекта maven ошибка исчезла.
Показать ещё 5 комментариев
31

У меня была такая же проблема, и я даже попытался удалить проект и добавить его снова. В чем заключалась попытка удалить каталог .settings.

  • 2
    Я также должен был сделать это. Я использовал веб-проект Spring с конфигурацией на основе Java, поэтому обновление web.xml было невозможно для меня.
  • 1
    Это сделало работу, сопровождаемую maven обновлением.
Показать ещё 5 комментариев
18

Удалить

.settings 
.classpatch 
.projejct 
target

и снова импортировать проект maven.

14

Что сработало для меня:

  • Измените Java на 1.8 (или 1.7)

В вашем POM - вы должны установить плагин компилятора в версии 1.8 (или 1.7) в разделе <build>:

  <build>
    ...
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.6.0</version>
          <configuration>
            <source>1.8</source>
            <target>1.8</target>
          </configuration>
        </plugin>  
      </plugins>    
  </build>

Убедитесь, что изменение Java Build показывает 1.8. Если это не так - щелкните EDIT и выберите, что должно быть.

Изображение 6749

  1. Изменить web.xml, поэтому 3.0 ссылается на версию и ссылку

Изображение 6750

  1. Убедитесь, что Java установлен на 1.8 в графах проекта

Изображение 6751

  1. На этом этапе я все еще не могу изменить динамический веб-модуль,

Вместо изменения:

a) снимите динамический веб-модуль

b) применить

c) снова проверьте его. Должна быть установлена ​​новая версия 3.0. **

Изображение 6752

После повторного применения и проверки:

Изображение 6753

Надеюсь, что это поможет.

14

Щелкните правой кнопкой мыши проект Свойства; в Границы проекта, снимите выделение Динамический веб-модуль (версия должна быть 3.1) и снимите выделение JavaServer Faces (версия 2.2).

Измените это:

<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">

:

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee" xmlns:javaee="http://xmlns.jcp.org/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

Затем удалите префикс до param-name и т.д.

Наконец, Maven Обновить проект.

9
  • Нажмите на папку проекта.
  • Перейдите в окно > Показать представление > Навигатор
  • Перейдите в Навигатор и разверните папку .settings
  • Открыть файл org.eclipse.wst.common.project.facet.core.xml

    <?xml version="1.0" encoding="UTF-8"?> <faceted-project> <fixed facet="wst.jsdt.web"/> <installed facet="jst.web" version="2.3"/> <installed facet="wst.jsdt.web" version="1.0"/> <installed facet="java" version="1.8"/> </faceted-project>

  • Измените версию, подобную этой <installed facet="jst.web" version="3.1"/>

  • Сохранить
  • Просто обновите свой проект. Щелкните правой кнопкой мыши на папке проектa > Maven > Update Project > Выберите проект и нажмите "Ok"

Только это сработало со мной.

  • 0
    Вы спасли мою жизнь!
  • 0
    какой герой ты человек!?! Спасибо
Показать ещё 1 комментарий
8

пожалуйста, откройте представление "Навигатор" и выполните следующий шаг.

  • ( "Окно" > "Показать вид" > "Прочее" > "Общие" ) и найдите в своем проекте папку .settings, разверните ее и откройте файл "org.eclipse.wst.common.project.facet.core.xml"., сделайте следующие изменения и сохраните файл.
  • Измените версию динамического веб-модуля в этой строке на 2.5 -
  • Измените версию Java в этой строке на 1.5 или выше.
  • 5
    Вы забыли указать, какой вид следует выбрать в папке «Общие» в диалоговом окне «Показать вид». Это вид "Навигатор"?
6

Лучшие и простые шаги для меня решены 1) Свойства Границы проекта → Снимите отметку с отметки флажка Динамический веб-модуль → Применить 2) Теперь измените на желаемую версию Apply 3) Установите флажок Динамический веб-модуль. - Теперь ваши сделаны -

  • 1
    Работал хорошо, но каковы последствия этого?
6

Откройте web.xml из структуры проекта http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd "  версия =" 3.0" >   Веб-приложение Servlet 3.0

и обновить файл web.xml например, изменить версию = "2.5"

Также измените файл org.eclipse.wst.common.project.facet.core.xml из файла проекта .settings. Следуйте шагам 1. Окно > Показать вид > Другое > Общие > Навигатор

  1. В каталоге проекта есть папка .settings

  2. Измените версию динамического веб-модуля в этой строке на 2.5 4. Измените версию Java в этой строке до 1,5 или выше

Теперь обновите свой проект и настройте его на своем сервере.

Соблюдайте блог для решения http://scrapillars.blogspot.in/2014/02/how-to-change-project-facet-in-eclipse.html

Решение создается с иллюстрациями изображений

  • 0
    Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными в случае изменения связанной страницы.
  • 0
    Я внес изменения в файл pom.xml, как показано на crunchify.com/… . Однако этого было недостаточно. Мне также пришлось следовать рекомендации, чтобы открыть папку .settings и отредактировать файл или файл .eclipse.wst.common.project.facet.core.xml.
3

Это еще один способ решить эту проблему (проверьте это, надеясь, что это поможет вам решить вашу проблему)

ПРОБЛЕМА

Невозможно изменить версию динамического веб-модуля фасет проекта с 2.3 до 3.0

РЕШЕНИЕ

  • Перейдите в свое местоположение проекта (пример: D:/maven/todo)
  • перейдите в папку настройки.
  • проверить этот файл: org.eclipse.wst.common.project.facet.core.xml
  • откройте файл и измените свойство "jst.web" с 2.3 до 3.0 и сохраните
  • Щелкните правой кнопкой мыши проект, обновите проект и обновите maven
  • Готово!!!....
2

У меня была такая же проблема, удалив папку .settings, разрешив проблему

2

Трюк web.xml работает, потому что теперь вы прямо указываете WTP, что используете конкретную версию сервлета, независимо от того, что поддерживает контейнер.

В моем случае я использую конфигурацию аннотаций в проекте Maven, и у меня нет файла web.xml. Оказывается, в отсутствие web.xml WTP ищет ваши зависимости от Maven, чтобы определить, какую версию Servlet использовать. В моем случае я определил следующее:

<dependency>
  <groupId>javax</groupId>
  <artifactId>javaee-api</artifactId>
  <version>7.0</version>
  <scope>provided</scope>
</dependency>

Изменение этого параметра на 6.0 устранило проблему, и теперь он использует Servlet 3.0 вместо 3.1, который по умолчанию используется для JavaEE 7. Поскольку мне пришлось перейти с Tomcat 8 на Tomcat 7, Tomcat 7 поддерживает только веб-профиль JavaEE 6. Теперь все работает чудесно.

2

В моем случае на web.xml ссылался dtd. После того, как я изменил это на xsd-ссылку, как тот, который был отправлен Сиднеем, он работал.

1

Для веб-проекта maven eclipse изменение версии динамического веб-модуля необходимо проверить на три места. Если вы используете eclipse и после того, как вы проверили следующее: 1) web.xml

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">

2) maven:

<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.0.1</version>
      <scope>provided</scope>   ## ensure you have tomcat 7 not other version
</dependency>

<plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.0</version>
      <configuration>
            <source>1.7</source> ## at least 6
            <target>1.7</target>
      </configuration>
</plugin>

3) путь сборки eclipse и версия компилятора 1.7

у вас все еще есть маркер ошибки на maven:

cannot change version of project facet dynamic web module to 3.0 one or more constrants have not been satisfied

Затем вы можете: снимите флажок с динамического веб-модуля и перепроверьте его. Я думаю, это потому, что. Setup файла eclipse поврежден каким-то образом. О втором совете tomcat, какая версия является хорошей записью.

1

Я попробовал много ответов здесь, но никто из них не работал у меня. Затем я нашел статью о своей проблеме здесь. Я тоже думал об этом.

Ниже приведены краткие инструкции.

  • Установить уровень соответствия компилятора.
  • Обновить грань проекта
  • Обновление установленных JRE из настроек
  • Добавление конфигурации в pom.xml для использования java 1.7 и, наконец,
  • обновление проекта от Maven.
1

Если ответ Сиднея по-прежнему не поможет, попробуйте ниже. После того, как вы ответили Сидней, перейдите в "Свойства" > "Границы проектов", чтобы отменить выбор динамического веб-модуля, а затем измените версию в соответствии с вашим web.config и затем выберите еще раз. Применить > Сохранить Затем обновите Maven.

web.xml

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:web="http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
id="Web_App_1" version="3.1">

<display-name>JavaServerFaces</display-name>

<!-- Change to "Production" when you are ready to deploy -->
<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
</context-param>

<!-- Welcome page -->
<welcome-file-list>
    <welcome-file>jsfs/hello.xhtml</welcome-file>
</welcome-file-list>

<!-- JSF mapping -->
<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<!-- Map these files with JSF -->
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>jsfs/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.faces</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

1

Мое решение проблемы, которая не позволила мне изменить версию фасет проекта Динамический веб-модуль в Eclipse (Mars):

  • Отключить природу Maven
  • Убедитесь, что пространства имен web.xml указывают на правильную версию
  • Восстановить Maven Nature
  • Maven "Обновить проект (или нажать Alt + F5)
0

обновление maven работало для меня

выберите проект, затем нажмите ALT + F5, затем выберите проект, нажмите ok

0

Я решил проблему с помощью изменяя web.xml с правильной версией, местоположениями xsd и изменением org.eclipse.wst.common.project.facet.core.xml с правильную версию и сделать обновление maven.

0

Шахта была Web Module 3.0 в web.xml, но в properties>Dynamic Web Module Она была на 3.1

Я изменил web.xml на это:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">

после этого изменения сделайте: right click on project>Maven>Update Project...

0

Эта проблема. С правой кнопкой мыши по проекту- > properties- > Fac Facets- > щелкните правой кнопкой мыши на Dynamic Web Module- > unlock it- > uncheck- > выберите 2.5 version- > Apply- > Обновить maven

  • 0
    Если я пытаюсь это сделать, я получаю сообщение об ошибке в затмении
  • 0
    Извините за последнее, вы обновили Maven?
0

Это вариант ответа pagurix, но с использованием Eclipse Mars.

Измените файл web.xml на web.bak

Игнорируйте ошибки, мы будем их регенерировать дальше.

Перейдите в свойства проекта → грань проекта и установите версию динамического веб-модуля для того, что вам нужно. Eclipse теперь позволяет вам сохранять.

Теперь щелкните правой кнопкой мыши проект. Выберите Инструменты Java EE → Создать дескриптор дескриптора развертывания.

Это создает новый web.xml с требуемой версией.

Откройте новый web.xml и скопируйте его через заголовок XML и полный тег для открытия веб-приложения на свой оригинальный web.bak, удалите новый web.xml и переименуйте web.bak обратно в web.xml.

Готово.

0

Откройте файл org.eclipse.wst.common.project.facet.core.xml и измените версию jst.web на 3.0. Также обновите web.xml до версии 3.0. Сохраните и обновите проект. Надеюсь это поможет. Я использую Eclipse Juno

0

У меня была такая же проблема, редактирование web.xml, а также изменение файла в папке .settings не помогло. Мое решение состояло в том, чтобы напрямую подключить плагин maven для компилятора, чтобы использовать нужную версию java, отредактировав pom.xml:

  <build>
    ...
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
    </plugins>    
  </build> 

Теперь запустите проект Maven- > Update, после чего вы можете изменить версию сервлета в свойствах → факс проекта → версия динамического веб-модуля или, как написано ранее, вручную, отредактировав файл org.eclipse.wst.common.project.facet.core.xml в папке .settings вашего проекта.

  • 0
    Единственный ответ, который действительно помог мне! Спасибо вам большое!
  • 0
    принимая в качестве ответа на ту же проблему, с которой я столкнулся ... спасибо, приятель
0

Выполнение обновления maven или реимпорт проекта не помогло. @Sydney ответ прав; кроме того, мне нужно воссоздать проект в другом рабочем пространстве, как сказано в JavaServer Faces 2.2 требует динамического веб-модуля 2.5 или более нового

Ещё вопросы

Сообщество Overcoder
Наверх
Меню