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


329

Я використовую Maven для створення динамічного веб-сайту в Eclipse. Я додав деякі папки, якsrc/test/java і src/test/resources. Також я змінив бібліотеку в Java Build Path, щоб отримати JavaSE-1.7. Тут все гаразд.

Коли я намагався змінити веб-модуль Projectt Facet Dynamic, щось пішло не так. Я змінив Java на 1.7 в тому самому місці. І все одно мені сказали, що не можу змінити версію проекту Фасетний динамічний веб-модуль на 3.0.

Я змінив усе, що могло б вплинути на зміни, які я думаю.


ДОБРЕ. Мені про це шкода. Коли я створюю проект New Maven, архетип є maven-archetype-webapp, а динамічний веб-модуль - 2,3 у грані проекту після створення проекту. Я хочу змінити версію Динамічного веб-модуля на 3.0, і я отримав "Неможливо змінити версію
фасети


У програмі Eclipse Kepler, коли я клацну правою кнопкою миші на грані "Динамічний веб-модуль", відображається опція "Розблокувати". Після розблокування я зміг змінити версію фасетки. лише для інформації.
Джонатан

Це помилка за затемнення?
CDT

Відповіді:


311

Я оновив свою 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 -> Оновити проект ...


64
Оновлення web.xml для мене не працювало. Рішення дається @enkor роботи: stackoverflow.com/a/18632054/378633
jplandrain

5
Ось дійсний заголовок для файлу 3.1 web.xml <? Xml version = "1.0" encoding = "UTF-8"?> <Web-app xmlns: xsi = " w3.org/2001/XMLSchema-in substance " xmlns = " xmlns.jcp.org/xml/ns/javaee " xsi: schemaLocation = " xmlns.jcp.org/xml/ns/javaee xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd " id = " WebApp_ID "version =" 3.1 ">
Якоб Олександр Ейхлер

3
що з проектами без web.xml? :)
Ананд Рокз

зміна атрибута версії на 3.0 також не працювала для мене
tequilacat

Якщо жодне з вищезазначених та нижчих рішень, якщо не працює, просимо перейти за цим посиланням на 100%, воно буде працювати.
Ракі

587

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

Змініть динамічну версію веб-модуля в цьому рядку на 3.0 - <installed facet="jst.web" version="2.5"/>

І потім:

  1. Клацніть правою кнопкою миші проект (на панелі Провідник проектів ).
  2. Виберіть Maven »Оновити проект (або натисніть Alt+F5)

Ви знайдете цей файл у .settingsкаталозі в рамках проекту Eclipse.


3
Дякую. Насправді я думаю, що нам слід зробити щось інше, як описано вище, змінити версію веб-модуля в web.xml, якщо ні, версія «Дескриптор розгортання» не зміниться на 3,0. І це помилка в плавні Maven?
EdgarZeng

13
Це видається єдиним способом вирішити цю проблему, коли ви не збираєтеся без веб-файлу у своєму проекті.
Шон Шервуд

3
У мене вже було 3.0 у web.xml і STS досі не вдалося оновити, і оновлення mvn теж не допомогло. Однак цей метод працює.
МіБ

2
Це допомогло фактично перейти до -> org.eclipse.wst.common.project.facet.core.xml -> видалити всі записи -> оновити проект Maven.
вірний

7
Ви можете знайти org.eclipse.wst.common.project.facet.core.xml файл у папці налаштування програми / проекту .settings.
Руші Шах

175

Я думаю, у мене була така ж проблема, як у вас. Мій web.xml мав версію 2.5, тоді як проект мав динамічний веб-модуль 2.3 (правою кнопкою миші на Проект-> Властивості-> Грані проекту->).

Хоча я намагався змінити версію з 2.3 на 2.5 ECLIPSE, це не дозволяло. Рішення: Я зняв прапорець під заголовком Динамічний веб-модуль, я зберег і в мене було оновлено проект. Автоматичне повторне пробудження - це введення коробки з правильною версією. Я використовую Eclipse Kepler.

ps: подивіться коментарі Джонатана трохи нижче, дуже корисно.


1
Чудово! Це вирішило мою проблему, але чи можете ви сказати мені, чому вона не дозволяла спочатку встановлювати динамічний модуль.
Суреш

26
@Suresh, я думаю, що проблема, чому вона не дозволила змінювати версію, полягає в тому, що вона заблокована. Якщо ви клацніть правою кнопкою миші на грані "Динамічний веб-модуль", вона відобразить опцію "Розблокувати". Після розблокування, зняття перевірки фасети DWM, повторного застосування фасети та оновлення проекту Maven оновлення помилка усунулася.
Джонатан

2
+1. Без цього надзвичайно важливого моменту інші відповіді тут даремно. Тільки я думаю, що коментар Джонатана не повинен бути включений у відповідь.
Gangnus

1
+1 @Jonathan Ваша порада зробила свою роботу. Ви повинні опублікувати це як відповідь, і ми також повинні підняти це на Eclipse!
aksappy

У моєму випадку це працює, тому у веб-модулі pom була встановлена ​​ще одна версія для веб-модуля Dnamic, тож це конфлікт з конфігурацією проекту
ocrampico

49
  1. Клацніть папку вашого проекту.
  2. Перейдіть у вікно> Показати перегляд> Навігатор
  3. Перейдіть у Навігатор і розгорніть папку .settings
  4. Відкрити 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>
  5. Змініть подібну версію <installed facet="jst.web" version="3.1"/>

  6. Зберегти
  7. Просто оновіть свій проект. Клацніть правою кнопкою миші на папці проекту> Maven> Оновити проект> Виберіть проект і натисніть «Ок»

Просто це працювало на мене.


43

У мене була така ж проблема, і я навіть намагався видалити проект і додати його ще раз. Трюк був у тому, щоб видалити .settingsкаталог.


2
Я також повинен був це зробити. Я використовував веб-проект Spring з конфігурацією на основі Java, тому оновлення web.xml для мене було неможливим.
bcody

Чому це спрацювало після видалення .setset, можна пояснити
Абхіджіт Чакра

Цей каталог .settings містить багато матеріалів, і, можливо, деякі з них змінювалися з часом. Я не знаю точно, яка частина вплинула на таку поведінку, але це було як перезавантаження. Жодна з інших відповідей не працювала для мене, але ця. І, здається, я не був єдиним у цій ситуації.
Адріан Бер

У мене виникла помилка: "Неможливо змінити версію фасети проекту EAR на 1.3."
Джованні П.

Працювали для мене! У мене виникла помилка: "Неможливо змінити версію динамічного веб-модуля проекту facet на 3.0"
Anup Ghosh


21

Що для мене спрацювало:

  1. Змініть 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 і виберіть, якою вона має бути.

введіть тут опис зображення

  1. Змініть web.xml, щоб 3.0 посилався у версії та посиланні

введіть тут опис зображення

  1. Переконайтеся, що у програмах Project Java для Java встановлено значення 1,8

введіть тут опис зображення

  1. На цьому етапі я ще не міг змінити динамічний веб-модуль;

Замість зміни:

а) зніміть прапорці з Динамічним веб-модулем

б) застосовувати

в) перевірте це ще раз. Слід встановити нову версію 3.0. **

введіть тут опис зображення

Після застосування та повторної перевірки:

введіть тут опис зображення

Сподіваюсь, це допомагає.


15

Клацніть правою кнопкою миші проектВластивості ; У грані проекту зніміть виділення Динамічного веб-модуля (версія має бути 3.1 ) та зніміть вибір обличчя JavaServer (версія - 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 -> Оновити проект .


8

відкрийте подання Навігатора та наступний крок

  1. (Вікно> Показати перегляд> Інше> Загальне) та виявіть, що під вашим проектом є папка .settings, розгорніть її та відкрийте файл "org.eclipse.wst.common.project.facet.core.xml", зробіть нижче зміни та збереження файлу.
  2. Змініть версію динамічного веб-модуля в цьому рядку на 2,5 -
  3. Змініть версію Java в цьому рядку на 1,5 або вище -.

5
Ви забули сказати, який вигляд слід вибрати в папці "Загальне" у діалоговому вікні "Показати перегляд". Це перегляд "Навігатора"?
Роберто Лінарес

6

Відкрити web.xml зі структури проекту http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd "version =" 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

Рішення виробляється із зображеннями ілюстрацій


Хоча це посилання може відповісти на питання, краще включити сюди суттєві частини відповіді та надати посилання для довідки. Відповіді лише на посилання можуть стати недійсними, якщо пов’язана сторінка зміниться.
Міха

Я змінив файл у файлі pom.xml, як показано на crunchify.com/… . Однак цього було недостатньо. Я також повинен був дотримуватися рекомендації відкрити папку .settings та редагувати файл or.eclipse.wst.common.project.facet.core.xml.
блекджек

6

Найкращі та найпростіші кроки, які вирішили цю проблему для мене - 1) Властивості -> Проект Грані -> Deselect / Зніміть прапорець з веб - модуль Dynamic -> Застосувати 2) Тепер перейдіть до потрібної версії Застосувати 3) Перевірте веб - модуль Dynamic прапорець .. --Now ваш, зроблено -


1
Добре працював, але що це за наслідки?
sg28

4

Це ще один спосіб вирішити цю проблему (перевірити сподівання, що вона допоможе вирішити вашу проблему)

ПРОБЛЕМА

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

РІШЕННЯ

  1. Перейдіть до свого місця розташування проекту (наприклад, D: / maven / todo)
  2. перейдіть до папки .setting
  3. перевірте цей файл: org.eclipse.wst.common.project.facet.core.xml
  4. відкрийте файл та змініть властивість "jst.web" з 2.3 на 3.0 та збережіть
  5. Клацніть правою кнопкою миші на проект оновлення проекту та оновлення Maven
  6. Готово !!! ....

3

Трюк 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. Зараз справи чудово працюють.


3

У мене була така ж проблема, редагування 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-> Оновити проект, після чого ви можете змінити версію сервлетів у властивостях-> грані проекту-> Динамічна версія веб-модуля або, як було написано раніше, вручну редагуючи org.eclipse.wst.common.project.facet.core. xml у папці .settings вашого проекту.


2

У моєму випадку на web.xml посилався dtd. Після того як я змінив цю посилання на xsd, як та, яку опублікував Сідней, вона працювала.


2

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


1

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

  • Вимкнути природу Мейвен
  • Переконайтесь, що простори імен web.xml вказують на правильну версію
  • Повторно ввімкніть Maven Nature
  • Maven »Оновити проект (або натисніть Alt + F5)

1

Якщо відповідь Сіднея все ще не допомагає, спробуйте нижче. Після відповіді Сіднея, перейдіть у розділ Властивості> Проекти Грані зніміть вибір Динамічного веб-модуля, а потім змініть версію, щоб вона відповідала вашому web.config, а потім виберіть знову. Застосувати> Зберегти потім оновити оновлення.

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

Тут я спробував багато відповідей, але жодна з них не працювала на мене. Тоді я знайшов статтю про мою проблему тут . Я думав поділитися цим і тут.

Нижче наведені кроки, зроблені коротко.

  1. Встановіть рівень відповідності компілятора.
  2. Оновити фасетку проекту
  3. Оновіть встановлений JRE з налаштувань
  4. Додавання конфігурації в pom.xml для використання java 1.7 та нарешті
  5. оновлення проекту від Maven.

1

Для веб-проекту Maven 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) шлях побудови затемнення, а версія компілятора - 1,7

у вас все ще є маркер помилки в maven:

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

Тоді ви можете: зняти прапорці з динамічним веб-модулем та повторно встановити його. Я думаю, що це тому, що .setting eclipse файл якось пошкоджений. Про другу підказку tomcat, версія якої є гарною заміткою.


1

Я отримав цю помилку, коли намагаюся перетворити загальний проект Java на Maven Project .

Що я зробив, це визначити версію компілятора Java, необхідну моєму проекту. Для мого проекту мінімальна версія Java - це 1.8.

Знизивши версію до чогось нижчого, ніж 1.8мій IDE, почне скаржитися, що не розпізнає купу імпортованих бібліотек, отже, я визначаю мінімальну версію Java як1.8

1. Right click your project
2. Go to Properties
3. Left hand-side panel, click "Project Facets"
4. For Java, set the version according to your minimum version

введіть тут опис зображення

Тепер переконайтеся, що версія компілятора Java використовує ту саму версію Java, що і налаштування проекту Project Facets.

1. Right click your project
2. Go to Porperties
3. Left hand-side panel, click "Java Compiler"
4. Make sure Java Compiler version is the same. 
5. If it is not the same, change the version. (Uncheck "Use compliance from execution environment' if needed to make the changes.

введіть тут опис зображення

Після змін помилку слід усунути. Якщо помилка все ж є, клацніть правою кнопкою миші проект -> Maven -> Оновити проект



0

Відкрийте файл org.eclipse.wst.common.project.facet.core.xml та змініть версію jst.web на 3.0. Також оновіть web.xml до версії 3.0. Збережіть та оновіть проект. Сподіваюсь, це допомагає. Я використовую Eclipse Juno


0

Це варіант у відповіді pagurix, але з використанням Eclipse Mars.

Змініть файл web.xml на web.bak

Ігноруйте помилки, ми регенеруємо їх наступним чином.

Зайдіть у властивості проекту -> грані проекту та встановіть версію Динамічного веб-модуля на те, що вам потрібно. Затемнення тепер дозволяє економити.

Тепер клацніть правою кнопкою миші на проекті. Оберіть Інструменти Java EE -> Створити Дескриптор Студії розгортання.

Це створює новий web.xml з необхідною версією.

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

Зроблено.


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

Ця проблема З версією клацніть правою кнопкою миші на проект-> властивості-> Грані проекту-> клацніть правою кнопкою миші на Динамічний веб-модуль-> розблокувати його-> зніміть прапорець>> виберіть 2.5 версії-> Застосувати-> Оновити мережу


0

Я вирішив проблему, змінивши web.xml з правильною версією, розташуваннями xsd та модифікацією org.eclipse.wst.common.project.facet.core.xml з правильною версією та зробивши оновлення Maven .


0

оновлення maven працювало на мене

виберіть проект, потім натисніть ALT + F5, потім виберіть проект, натисніть кнопку ОК


0

У мене був той самий симптом з іншим лікуванням. Я намагався модернізувати свій веб-розетку JSF 2.2.4 / Spring 3.0 до JSF 2.3, щоб насолодитися новими гачками веб-розетки JSF, і Eclipse (фактично STS) не співпрацює. У проектних гранях Eclipse JSF 2.3 ніколи не став доступним, поки я не редагував безпосередньо файл org.eclipse.wst.common.project.facet.core.xml, як вказано в попередніх відповідях - найвищий показник - 2,2.

Ось обручі, через які я стрибнув. Я не знаю, що все це було потрібно, тому що я принципово не розумію всю цю конфігурацію.

У програмі Eclipse я часто отримував жахливе попередження: "Зміна фацетного проекту, коли реалізація однієї або декількох встановлених граней недоступна, потенційно може призвести до пошкодження проекту. Ви впевнені, що хочете продовжувати роботу?" Це змусило мене робити більш часті вчинки, але корупції не сталося.

  1. Оновіть JDK з 1,7 до 1,8 у POM, компіляторі Eclipse та Eclipse Project Facets.
  2. Оновіть такі залежності Maven:

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.4</version>
        <scope>provided</scope>
    </dependency>

    ... до:

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>4.0.0</version>
        <scope>provided</scope>
    </dependency>

... і ...

    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-api</artifactId>
        <version>2.2.4</version>
    </dependency>
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>2.2.4</version>
    </dependency>

... до:

    <dependency>
        <groupId>javax.faces</groupId>
        <artifactId>javax.faces-api</artifactId>
        <version>2.3</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.faces</artifactId>
        <version>2.3.0</version>
    </dependency>
    <dependency>
        <groupId>javax.enterprise</groupId>
        <artifactId>cdi-api</artifactId>
        <version>2.0</version>
    </dependency>

Мені довелося оновити свої декларації про простір імен web.xml з:

<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_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">

... до:

<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" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">

Мені довелося оновити Project Faces -> Динамічний веб-модуль від 2,5 до 3,0. Я спробував 3.1, але отримав помилки.

У цьому процесі я часто отримував помилку в заголовку цієї публікації: "Не вдається змінити версію динамічного веб-модуля проекту на 3.0" і Eclipse відмовився складати проект або пропонувати JSF 2.3 у проектних гранях. Коли я відредагував файл org.eclipse.wst.common.project.facet.core.xml, то помилки зникли, Eclipse запропонував JSF 2.3 у проектних гранях, і проект скомпілювався та працював нормально на Tomcat 9.0.8. Однак Фасетки проекту все ж попереджали: "Не вдалося знайти реалізацію версії 2.3 проекту facet jst.jsf. Функціональність буде обмежена." Я підозрюю, що це просто означає, що автозаповнення та інші зручності Eclipse будуть недоступні, оскільки він не може знайти реалізацію JSF 2.3, заявлену в моїй POM.

Сподіваюся, що це комусь допоможе. Пошуки Google дали лише цю посаду Алі Бассам та опосередковано BalusC, що допомогло.


0

У мене була така ж проблема - я просто видалив проект зі своєї робочої області, потім очистив "файли / папки затемнення, наприклад: .project, .settings тощо), потім знову імпортував проект maven, він працював.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.