Nie można zmienić wersji aspektu projektu Dynamic Web Module na 3.0?


329

Używam maven do stworzenia dynamicznej aplikacji internetowej w Eclipse. Dodałem kilka folderów, takich jak src/test/javai src/test/resources. Zmieniłem także bibliotekę w Java Build Path, aby uzyskać JavaSE-1.7. Wszystko tu jest w porządku.

Kiedy próbowałem zmienić dynamiczny moduł WWW projektów Facet, coś poszło nie tak. W tym samym miejscu zmieniłem Javę na 1.7. I wciąż mi powiedział, że nie mogę zmienić wersji aspektu projektu Dynamic Web Module na 3.0.

Zmieniłem wszystko, co miałoby wpływ na zmianę, tak myślę.


OK. Przepraszam za to. Archetypem jest maven-archetype-webapp, kiedy tworzę projekt New Maven, a Dynamic Web Module ma 2.3 w Aspektach projektu po jego utworzeniu. Chcę zmienić wersję Dynamic Web Module na 3.0 i otrzymałem komunikat „Nie można zmienić wersji aspektu projektu Dynamic Web Module na 3.0”
EdgarZeng,


W programie Eclipse Kepler kliknięcie prawym przyciskiem myszy aspektu „Dynamic Web Module” powoduje wyświetlenie opcji „Odblokuj”. Po odblokowaniu mogłem zmienić wersję aspektu. tylko dla informacji.
Jonathan

Czy to błąd w przypadku zaćmienia?
CDT,

Odpowiedzi:


311

Zaktualizowałem mój 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>

a następnie po prostu Maven -> Zaktualizuj projekt ...


64
Aktualizacja pliku web.xml nie działała dla mnie. Rozwiązanie podane przez @enkor działa: stackoverflow.com/a/18632054/378633
jplandrain

5
Oto poprawny nagłówek pliku 3.1 web.xml <? Xml version = "1.0" encoding = "UTF-8"?> <Web-app xmlns: xsi = " w3.org/2001/XMLSchema-instance " 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 ">
Jakob Alexander Eichler

3
co z projektami bez pliku web.xml? :)
Anand Rockzz,

zmiana atrybutu wersji na 3.0 też nie działała dla mnie
tequilacat

Jeśli żadne z powyższych i poniższych rozwiązań, jeśli nie działa, przejrzyj ten link w 100%, zadziała.
Raki,

587

Innym sposobem jest edycja samego pliku konfiguracji aspektu projektu: org.eclipse.wst.common.project.facet.core.xml

Zmień wersję dynamicznego modułu internetowego w tym wierszu na 3.0 - <installed facet="jst.web" version="2.5"/>

I wtedy:

  1. Kliknij projekt prawym przyciskiem myszy (w panelu Eksplorator projektów ).
  2. Wybierz Maven »Zaktualizuj projekt (lub naciśnij Alt+F5)

Znajdziesz ten plik w .settingskatalogu w projekcie Eclipse.


3
Dziękuję Ci. Właściwie uważam, że powinniśmy zrobić coś innego, jak wyżej, zmienić wersję modułu WWW w pliku web.xml, jeśli nie, wersja „Descriptor wdrażania” nie zmieni się na 3.0. A czy to błąd we wtyczce maven?
EdgarZeng,

13
Wydaje się, że jest to jedyny sposób na rozwiązanie tego problemu, jeśli nie używasz pliku web.xml w swoim projekcie.
Shawn Sherwood

3
Miałem już 3.0 w pliku web.xml i STS wciąż nie udało się zaktualizować i aktualizacja mvn też nie pomogła. Ta metoda jednak działa.
MiB

2
Pomogło to faktycznie przejść do -> org.eclipse.wst.common.project.facet.core.xml -> usunąć wszystkie wpisy -> projekt aktualizacji maven.
wirtuozerii

7
Możesz znaleźć plik org.eclipse.wst.common.project.facet.core.xml w folderze .settings aplikacji / projektu.
Rushi Shah,

175

Myślę, że miałem ten sam problem co ty. Mój plik web.xml miał wersję 2.5, podczas gdy projekt miał (kliknij prawym przyciskiem myszy Projekt-> Właściwości-> Aspekty projektu->) Moduł sieci Web 2.3.

Chociaż próbowałem zmienić wersję z 2.3 na 2.5 ECLIPSE na to nie zezwoliło. Rozwiązanie: usunąłem znacznik wyboru pod nagłówkiem Dynamiczny moduł internetowy, zapisałem i miałem aktualizację projektu. Automatyczne przebudzenie to wejście do skrzynki z poprawną wersją. Używam Eclipse Kepler.

ps: spójrz na komentarze Jonathana tuż poniżej, bardzo przydatne.


1
Świetnie! Rozwiązało to mój problem, ale czy możesz mi powiedzieć, dlaczego początkowo nie pozwalano ustawić modułu dynamicznego?
Suresh

26
@Suresh, myślę, że problemem, dlaczego nie pozwala na zmianę wersji, jest to, że jest zablokowana. Kliknięcie prawym przyciskiem myszy aspektu „Dynamic Web Module” spowoduje wyświetlenie opcji „Odblokuj”. Po odblokowaniu, odznaczeniu aspektu DWM, ponownym zastosowaniu aspektu i wykonaniu aktualizacji projektu, błąd zniknął.
Jonathan

2
+1. Bez tego niezwykle ważnego punktu inne odpowiedzi tutaj są na nic. Tylko myślę, że komentarz Jonathana nie powinien być uwzględniony w odpowiedzi.
Gangnus

1
+1 @ Jonathan Twój typ zadziałał. Musisz opublikować to jako odpowiedź, a my również powinniśmy przekazać to do Eclipse!
aksappy

W moim przypadku działa to, dlaczego w module internetowym pom została ustawiona inna wersja dla modułu internetowego Dnamic, więc jest to sprzeczne z konfiguracją projektu
ocrampico

49
  1. Kliknij folder projektu.
  2. Przejdź do Okno> Pokaż widok> Nawigator
  3. Przejdź do Nawigatora i rozwiń folder .settings
  4. Otwórz org.eclipse.wst.common.project.facet.core.xmlplik

    <?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. Zmień wersję w ten sposób <installed facet="jst.web" version="3.1"/>

  6. Zapisać
  7. Po prostu zaktualizuj swój projekt. Kliknij prawym przyciskiem myszy folder projektu> Maven> Aktualizuj projekt> Wybierz projekt i kliknij „Ok”

Po prostu mi to działało.


43

Miałem ten sam problem, a nawet próbowałem usunąć projekt i dodać go ponownie. Sztuczka polegała na usunięciu .settingskatalogu.


2
Też musiałem to zrobić. Korzystałem z projektu sieci Spring z konfiguracją opartą na Javie, więc aktualizacja pliku web.xml nie była dla mnie możliwa.
bcody

Dlaczego zadziałało po usunięciu .setting, proszę wyjaśnić
Abhijit Chakra

Ten katalog .settings zawiera wiele rzeczy i być może niektóre z nich uległy zmianie z czasem. Nie wiem dokładnie, która część wpłynęła na to zachowanie, ale to było jak reset. Żadna z pozostałych odpowiedzi nie działała dla mnie, ale ta. I wygląda na to, że nie byłem jedyny w tej sytuacji.
Adrian Ber

Pracowałem dla siebie, miałem ten błąd: „Nie można zmienić wersji EAR aspektu projektu na 1.3”.
Giovanni P.,

Pracował dla mnie! Miałem błąd: „Nie można zmienić wersji aspektu projektu Dynamic Web Module na 3.0”
Anup Ghosh,


21

Co dla mnie zadziałało:

  1. Zmień Java na 1.8 (lub 1.7)

W POM - musisz ustawić wtyczkę kompilatora do wersji 1.8 (lub 1.7) w <build>sekcji:

  <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>

Upewnij się, że zmiana Java Build pokazuje 1.8. Jeśli nie, kliknij EDYTUJ i wybierz, co powinno być.

wprowadź opis zdjęcia tutaj

  1. Zmodyfikuj plik web.xml, aby wersja 3.0 była wymieniona w wersji i w linku

wprowadź opis zdjęcia tutaj

  1. Upewnij się, że Java jest ustawiona na 1.8 w Project Facets

wprowadź opis zdjęcia tutaj

  1. Na tym etapie nadal nie mogłem zmienić Dynamic Web Module;

Zamiast go zmieniać:

a) odznacz Dynamic Web Module

b) złożyć wniosek

c) sprawdź ponownie. Należy ustawić nową wersję 3.0. **

wprowadź opis zdjęcia tutaj

Po zastosowaniu i ponownym sprawdzeniu:

wprowadź opis zdjęcia tutaj

Mam nadzieję że to pomoże.


15

Kliknij prawym przyciskiem myszy projektWłaściwości ; w Project Facets usuń zaznaczenie Dynamic Web Module (wersja powinna być 3.1 ) i usuń zaznaczenie JavaServer Faces (wersja to 2.2 ).

Zmień to:

<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">

do tego:

<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">

Następnie usuń przedrostek przed param-namei tym podobne.

Na koniec Maven -> Zaktualizuj projekt .


8

proszę otworzyć widok Nawigatora i następujący krok

  1. (Okno> Pokaż widok> Inne> Ogólne) i znajdź folder .settings w swoim projekcie, rozwiń go, a następnie otwórz plik „org.eclipse.wst.common.project.facet.core.xml”, wykonaj poniżej zmiany i zapisz plik.
  2. Zmień wersję dynamicznego modułu internetowego w tym wierszu na 2,5 -
  3. Zmień wersję Java w tym wierszu na 1.5 lub nowszą -.

5
Zapomniałeś powiedzieć, jaki widok należy wybrać w folderze „Ogólne” w oknie dialogowym „Pokaż widok”. Czy to widok „Nawigator”?
Roberto Linares

6

Otwórz plik web.xml ze struktury projektu http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd "version =" 3.0 "> Aplikacja sieci Web Servlet 3.0

i zaktualizuj plik web.xml, na przykład zmień wersję = „2.5”

Zmień także plik org.eclipse.wst.common.project.facet.core.xml z pliku .settings projektu. Postępuj zgodnie z instrukcjami 1. Okno> Pokaż widok> Inne> Ogólne> Nawigator

  1. W katalogu projektu znajduje się folder .settings

  2. Zmień wersję dynamicznego modułu WWW w tym wierszu na 2.5 4. Zmień wersję Java w tym wierszu na 1.5 lub nowszą

Teraz odśwież projekt i przygotuj go do uruchomienia na serwerze.

Postępuj zgodnie z blogu, aby znaleźć rozwiązanie http://scrapillars.blogspot.in/2014/02/how-to-change-project-facet-in-eclipse.html

Rozwiązanie jest tworzone z ilustracjami obrazkowymi


Chociaż ten link może odpowiedzieć na pytanie, lepiej jest dołączyć tutaj istotne części odpowiedzi i podać link w celach informacyjnych. Odpowiedzi zawierające tylko łącze mogą stać się nieprawidłowe, jeśli połączona strona ulegnie zmianie.
Micha

Wprowadziłem zmiany w pliku pom.xml, jak pokazano w crunchify.com/… . To jednak nie wystarczyło. Musiałem także postępować zgodnie z zaleceniami, aby otworzyć folder .settings i edytować plik or.eclipse.wst.common.project.facet.core.xml.
blackjack,

6

Najlepsze i proste kroki, które rozwiązały dla mnie ten problem to: 1) Właściwości -> Aspekty projektu -> Odznacz / odznacz pole wyboru Dynamicznego modułu WWW -> Zastosuj 2) Teraz zmień na żądaną wersję Zastosuj 3) Zaznacz pole wyboru Dynamiczny moduł sieci .. - Teraz gotowe -


1
Działał dobrze, ale jaka jest tego konsekwencja?
sg28

4

To kolejny sposób na rozwiązanie tego problemu (sprawdź, czy pomoże Ci rozwiązać problem)

PROBLEM

Nie można zmienić wersji dynamicznego modułu WWW aspektu projektu 2.3 na 3.0

ROZWIĄZANIE

  1. Przejdź do lokalizacji projektu (np. D: / maven / todo)
  2. przejdź do folderu .setting
  3. sprawdź ten plik: org.eclipse.wst.common.project.facet.core.xml
  4. otwórz plik i zmień właściwość „jst.web” z 2.3 na 3.0 i zapisz
  5. Kliknij projekt prawym przyciskiem myszy, odśwież projekt i zaktualizuj maven
  6. Gotowy!!!....

3

Sztuczka web.xml działa, ponieważ teraz wyraźnie mówisz WTP, że używasz tej konkretnej wersji serwletu, niezależnie od tego, co obsługuje kontener.

W moim przypadku używam konfiguracji adnotacji w projekcie Maven i nie mam pliku web.xml. Okazuje się, że przy braku pliku web.xml, WTP sprawdza twoje zależności Maven w celu ustalenia, jakiej wersji serwletu ma użyć. W moim przypadku zdefiniowałem:

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

Zmiana na 6.0 naprawiła problem i teraz używa Servlet 3.0 zamiast 3.1, co jest domyślnym ustawieniem dla JavaEE 7. Ponieważ musiałem przejść z Tomcat 8 na Tomcat 7, Tomcat 7 obsługuje tylko profil JavaEE 6 Web. Teraz wszystko działa cudownie.


3

Miałem ten sam problem, sama edycja pliku web.xml oraz zmiana pliku w folderze .settings nie pomogły. Moim rozwiązaniem było bezpośrednie wskazanie wtyczki kompilatora maven na użycie żądanej wersji Java poprzez edycję 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> 

Teraz uruchom Maven-> Aktualizuj projekt, a następnie możesz zmienić wersję serwletów we właściwościach -> aspekty projektu -> Wersja modułu Web Dynamic lub, jak napisano wcześniej, ręcznie edytując org.eclipse.wst.common.project.facet.core. xml w folderze .settings twojego projektu.


2

W moim przypadku plik web.xml został przywołany przez dtd. Po zmianie tego na odwołanie xsd, takie jak to opublikowane przez Sydney, zadziałało.


2

Miałem ten sam problem, usunięcie folderu .settings rozwiązało problem


1

Moje rozwiązanie problemu, który nie pozwolił mi zmienić wersji aspektu projektu Dynamic Web Module w Eclipse (Mars), to:

  • Wyłącz Maven Nature
  • Upewnij się, że przestrzenie nazw pliku web.xml wskazują właściwą wersję
  • Ponownie włącz Maven Nature
  • Maven »Zaktualizuj projekt (lub naciśnij Alt + F5)

1

Jeśli odpowiedź Sydney nadal nie pomaga, spróbuj poniżej. Po otrzymaniu odpowiedzi od Sydney, goto Właściwości> Aspekty projektów odznacz Dynamiczny moduł WWW, a następnie zmień wersję, aby pasowała do twojego web.config, a następnie wybierz ponownie. Zastosuj> Zapisz, a następnie Aktualizuj 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

Próbowałem tutaj wielu odpowiedzi, ale żadna z nich nie działała dla mnie. Potem znalazłem artykuł o moim problemie tutaj . Myślałem też o tym tutaj.

Poniżej znajdują się krótkie kroki.

  1. Ustaw poziom zgodności kompilatora.
  2. Zaktualizuj aspekt projektu
  3. Zaktualizuj zainstalowane środowisko JRE z preferencji
  4. Dodanie konfiguracji w pom.xml do korzystania z Java 1.7 i na końcu
  5. aktualizacja projektu z Maven.

1

W przypadku projektu internetowego maven eclipse zmiana wersji dynamicznego modułu internetowego musi sprawdzić trzy miejsca. Jeśli używasz Eclipse, a po sprawdzeniu: 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) Ścieżka kompilacji Eclipse i wersja kompilatora to 1.7

nadal masz znacznik błędu w maven:

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

Następnie możesz: odznaczyć dynamiczny moduł WWW i sprawdzić go ponownie. Myślę, że dzieje się tak, ponieważ plik .settings pliku eclipse jest w jakiś sposób uszkodzony. O drugiej wskazówce, która wersja jest dobrą notatką.


1

Wystąpił ten błąd, gdy próbuję przekonwertować ogólny projekt Java do projektu Maven .

To, co zrobiłem, było określenie wersji kompilatora Java, która jest wymagana przez mój projekt. W moim projekcie minimalna wersja Java to 1.8.

Obniżając wersję do poziomu niższego niż 1.8moje IDE, zaczniesz narzekać, że nie rozpoznaje wielu importowanych bibliotek, dlatego określam minimalną wersję Java jako1.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

wprowadź opis zdjęcia tutaj

Teraz upewnij się, że wersja kompilatora Java używa tej samej wersji Java, którą ustawiłeś w 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.

wprowadź opis zdjęcia tutaj

Po zmianach błąd powinien zostać rozwiązany. Jeśli błąd nadal występuje, kliknij prawym przyciskiem myszy projekt -> Maven -> Zaktualizuj projekt



0

Otwórz plik org.eclipse.wst.common.project.facet.core.xml i zmień wersję jst.web na 3.0. Zaktualizuj również plik web.xml do wersji 3.0. Zapisz i zaktualizuj projekt. Mam nadzieję że to pomoże. Korzystam z Eclipse Juno


0

Jest to odmiana odpowiedzi pagurix, ale przy użyciu Eclipse Mars.

Zmień plik web.xml na web.bak

Zignoruj ​​błędy, wygenerujemy je ponownie.

Przejdź do właściwości projektu -> aspekty projektu i ustaw odpowiednią wersję Dynamic Web Module. Eclipse pozwala teraz oszczędzać.

Teraz kliknij projekt prawym przyciskiem myszy. Wybierz Narzędzia Java EE -> Generuj skrót deskryptora wdrażania.

Spowoduje to utworzenie nowego pliku web.xml z wymaganą wersją.

Otwórz nowy plik web.xml i skopiuj nagłówek XML oraz pełny tag otwierający aplikację internetową do oryginalnego pliku web.bak, usuń nowy plik web.xml i zmień nazwę pliku web.bak z powrotem na plik web.xml.

Gotowy.


0

Mój był Web Module 3.0w web.xml, ale properties>Dynamic Web Moduleto było na3.1

Zmieniłem na web.xmlto:

<?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">

po tej zmianie wykonaj: right click on project>Maven>Update Project...


0

Ten problem z wersją Kliknij prawym przyciskiem myszy na projekt-> właściwości-> Aspekty projektu-> kliknij prawym przyciskiem na Dynamiczny moduł sieciowy-> odblokuj go-> odznacz-> wybierz wersję 2.5-> Zastosuj-> Zaktualizuj maven


0

Rozwiązałem problem, modyfikując plik web.xml za pomocą poprawnej wersji, lokalizacji xsd i modyfikując plik org.eclipse.wst.common.project.facet.core.xml za pomocą poprawnej wersji i wykonując aktualizację maven .


0

aktualizacja maven działała dla mnie

wybierz projekt, następnie naciśnij ALT + F5, a następnie wybierz projekt, kliknij OK


0

Miałem ten sam objaw z innym lekarstwem. Próbowałem zaktualizować moją aplikację JSF 2.2.4 / Spring 3.0 do JSF 2.3, aby móc korzystać z nowych haków Jss websocket i Eclipse (właściwie STS) nie będzie współpracować. W Eclipse's Project Facets JSF 2.3 nigdy nie stał się dostępny, dopóki nie edytowałem bezpośrednio pliku org.eclipse.wst.common.project.facet.core.xml zgodnie z wcześniejszymi odpowiedziami - najwyższy byłby 2,2.

Oto obręcze, przez które skoczyłem. Nie wiem, czy wszystkie były konieczne, ponieważ zasadniczo nie rozumiem całej tej konfiguracji.

W Eclipse często otrzymywałem przerażające ostrzeżenie: „Modyfikacja projektu aspektowego, gdy implementacje jednej lub więcej zainstalowanych aspektów nie są dostępne, może potencjalnie doprowadzić do uszkodzenia projektu. Czy na pewno chcesz kontynuować?” To skłoniło mnie do częstszych zatwierdzeń, ale nie doszło do uszkodzenia.

  1. Zaktualizuj JDK z 1.7 do 1.8 w POM, kompilatorze Eclipse i aspektach projektu Eclipse.
  2. Zaktualizuj następujące zależności Maven:

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

    ... do:

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

... i ...

    <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>

... do:

    <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>

Musiałem zaktualizować deklaracje przestrzeni nazw web.xml z:

<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">

... do:

<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">

Musiałem zaktualizować Aspekty projektu -> Dynamiczny moduł internetowy z 2.5 do 3.0. Próbowałem 3.1, ale dostałem błędy.

W tym procesie często pojawia się błąd w tytule tego postu: „Nie można zmienić wersji aspektu projektu Dynamic Web Module na 3.0”, a Eclipse odmówił skompilowania projektu lub zaoferowania JSF 2.3 w aspektach projektu. Kiedy edytowałem plik org.eclipse.wst.common.project.facet.core.xml zgodnie z zaleceniami, błędy zniknęły, Eclipse zaoferował JSF 2.3 w Project Facets, a projekt skompilował się i działał poprawnie na Tomcat 9.0.8. Jednak Project Facets nadal ostrzegał: „Nie można znaleźć implementacji wersji 2.3 aspektu projektu jst.jsf. Funkcjonalność będzie ograniczona”. Podejrzewam, że oznacza to po prostu, że autouzupełnianie i inne udogodnienia Eclipse nie będą dostępne, ponieważ nie można znaleźć implementacji JSF 2.3 zadeklarowanej w mojej POM.

Mam nadzieję, że to komuś pomoże. Wyszukiwania Google przyniosły tylko ten post autorstwa Ali Bassam i pośrednio BalusC, co pomogło.


0

Miałem ten sam problem - właśnie usunąłem projekt z mojego obszaru roboczego, następnie wyczyściłem „pliki / foldery zaćmienia, na przykład: .project, .settings itp.), A następnie ponownie zaimportowałem projekt maven, zadziałał.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.