Używam maven do stworzenia dynamicznej aplikacji internetowej w Eclipse. Dodałem kilka folderów, takich jak src/test/java
i 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ę.
Odpowiedzi:
Zaktualizowałem mój
web.xml
a następnie po prostu Maven -> Zaktualizuj projekt ...
źródło
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:
Znajdziesz ten plik w
.settings
katalogu w projekcie Eclipse.źródło
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.
źródło
Otwórz
org.eclipse.wst.common.project.facet.core.xml
plikZmień wersję w ten sposób
<installed facet="jst.web" version="3.1"/>
Po prostu mi to działało.
źródło
Miałem ten sam problem, a nawet próbowałem usunąć projekt i dodać go ponownie. Sztuczka polegała na usunięciu
.settings
katalogu.źródło
Usunąć
i zaimportuj ponownie projekt maven.
źródło
Co dla mnie zadziałało:
W POM - musisz ustawić wtyczkę kompilatora do wersji 1.8 (lub 1.7) w
<build>
sekcji:Upewnij się, że zmiana Java Build pokazuje 1.8. Jeśli nie, kliknij EDYTUJ i wybierz, co powinno być.
Zamiast go zmieniać:
a) odznacz Dynamic Web Module
b) złożyć wniosek
c) sprawdź ponownie. Należy ustawić nową wersję 3.0. **
Po zastosowaniu i ponownym sprawdzeniu:
Mam nadzieję że to pomoże.
źródło
Kliknij prawym przyciskiem myszy projekt → Wł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:
do tego:
Następnie usuń przedrostek przed
param-name
i tym podobne.Na koniec Maven -> Zaktualizuj projekt .
źródło
proszę otworzyć widok Nawigatora i następujący krok
źródło
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
W katalogu projektu znajduje się folder .settings
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
źródło
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 -
źródło
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
źródło
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:
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.
źródło
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:
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.
źródło
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.
źródło
Miałem ten sam problem, usunięcie folderu .settings rozwiązało problem
źródło
Moje rozwiązanie problemu, który nie pozwolił mi zmienić wersji aspektu projektu Dynamic Web Module w Eclipse (Mars), to:
źródło
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
źródło
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.
źródło
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
2) maven:
3) Ścieżka kompilacji Eclipse i wersja kompilatora to 1.7
nadal masz znacznik błędu w maven:
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ą.
źródło
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.8
moje IDE, zaczniesz narzekać, że nie rozpoznaje wielu importowanych bibliotek, dlatego określam minimalną wersję Java jako1.8
Teraz upewnij się, że wersja kompilatora Java używa tej samej wersji Java, którą ustawiłeś w Project Facets.
Po zmianach błąd powinien zostać rozwiązany. Jeśli błąd nadal występuje, kliknij prawym przyciskiem myszy projekt -> Maven -> Zaktualizuj projekt
źródło
Wykonanie aktualizacji mavena lub ponowne zaimportowanie projektu nie pomogło. @ Odpowiedź Sydney jest poprawna; ponadto muszę odtworzyć projekt w innym obszarze roboczym, jak powiedziano w JavaServer Faces 2.2 wymaga Dynamic Web Module 2.5 lub nowszego
źródło
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
źródło
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.
źródło
Mój był
Web Module 3.0
wweb.xml
, aleproperties>Dynamic Web Module
to było na3.1
Zmieniłem na
web.xml
to:po tej zmianie wykonaj:
right click on project>Maven>Update Project...
źródło
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
źródło
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 .
źródło
aktualizacja maven działała dla mnie
wybierz projekt, następnie naciśnij ALT + F5, a następnie wybierz projekt, kliknij OK
źródło
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.
Zaktualizuj następujące zależności Maven:
... do:
... i ...
... do:
Musiałem zaktualizować deklaracje przestrzeni nazw web.xml z:
... do:
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.
źródło
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ł.
źródło