Kann die Version des Dynamic Web Module der Projektfacette nicht auf 3.0 ändern?


329

Ich verwende Maven, um eine dynamische Webanwendung in Eclipse zu erstellen. Ich habe einige Ordner wie src/test/javaund hinzugefügt src/test/resources. Außerdem habe ich die Bibliothek in Java Build Path geändert, um JavaSE-1.7 zu erhalten. Bis hier ist alles in Ordnung.

Als ich versuchte, das Projects Facet Dynamic Web Module zu ändern, ist ein Fehler aufgetreten. Ich hatte das Java an derselben Stelle auf 1.7 geändert. Und es hat mir immer noch gesagt, dass die Version des Dynamic Web Module der Projektfacette nicht auf 3.0 geändert werden kann.

Ich habe alles geändert, was die Änderung bewirken würde, denke ich.


OK. Das tut mir leid. Der Archetyp ist maven-archetype-webapp, wenn ich das neue Maven-Projekt erstelle, und das dynamische Webmodul ist 2.3 in den Projektfacetten, nachdem ich das Projekt erstellt habe. Ich möchte die Version des dynamischen Webmoduls auf 3.0 ändern und habe die
Meldung "


Wenn ich in Eclipse Kepler mit der rechten Maustaste auf die Facette "Dynamisches Webmodul" klicke, wird die Option "Entsperren" angezeigt. Nach dem Entsperren konnte ich die Facettenversion ändern. Nur zur Information.
Jonathan

Ist das ein Fehler für Eclipse?
CDT

Antworten:


311

Ich habe meine aktualisiert 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>

und dann einfach Maven -> Projekt aktualisieren ...


64
Das Update der web.xml hat bei mir nicht funktioniert. Die von @enkor gegebene Lösung funktioniert: stackoverflow.com/a/18632054/378633
jplandrain

5
Hier ist ein gültiger Header für eine 3.1 web.xml-Datei <? 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
Was ist mit Projekten ohne web.xml? :)
Anand Rockzz

Die Änderung des Versionsattributs auf 3.0 hat auch bei mir nicht funktioniert
tequilacat

Wenn keine der oben und unten aufgeführten Lösungen funktioniert, wenn sie nicht funktionieren, gehen Sie bitte zu 100% über diesen Link.
Raki

587

Eine andere Möglichkeit besteht darin, die Projektfacetten-Konfigurationsdatei selbst zu bearbeiten: org.eclipse.wst.common.project.facet.core.xml

Ändern Sie die Version des dynamischen Webmoduls in dieser Zeile in 3.0 - <installed facet="jst.web" version="2.5"/>

Und dann:

  1. Klicken Sie mit der rechten Maustaste auf das Projekt (im Projekt-Explorer ).
  2. Wählen Sie Maven »Projekt aktualisieren (oder drücken Sie Alt+F5)

Sie finden diese Datei im .settingsVerzeichnis des Eclipse-Projekts.


3
Vielen Dank. Eigentlich denke ich, wir sollten etwas anderes tun, genau wie oben, die Version des Webmoduls in der Datei web.xml ändern. Wenn nicht, wird die Version des 'Deployment Descriptor' nicht auf 3.0 geändert. Und ist das ein Fehler im Maven Plugin?
EdgarZeng

13
Dies scheint die einzige Möglichkeit zu sein, dieses Problem zu beheben, wenn Sie in Ihrem Projekt keine web.xml verwenden.
Shawn Sherwood

3
Ich hatte bereits 3.0 in der web.xml und STS konnte immer noch nicht aktualisiert werden und mvn update half auch nicht. Diese Methode funktioniert jedoch.
MiB

2
Dies half, gehen Sie tatsächlich zu -> org.eclipse.wst.common.project.facet.core.xml -> entfernen Sie alle Einträge -> Maven Update-Projekt.
virtuos

7
Sie finden die Datei org.eclipse.wst.common.project.facet.core.xml in Ihrem Ordner "application / project .settings".
Rushi Shah

175

Ich glaube, ich hatte das gleiche Problem wie Sie. Meine web.xml hatte Version 2.5, während das Projekt das (mit der rechten Maustaste auf Projekt-> Eigenschaften-> Projektfacetten->) Dynamic Web Module 2.3 hatte.

Obwohl ich versucht habe, die Version von 2.3 auf 2.5 zu ändern, hat ECLIPSE dies nicht zugelassen. Lösung: Ich habe das Häkchen unter der Überschrift Dynamisches Webmodul entfernt, gespeichert und das Projekt aktualisiert. Beim automatischen Wiedererwachen wird das Feld mit der richtigen Version eingegeben. Ich benutze Eclipse Kepler.

ps: schau dir die Kommentare von Jonathan unten an, sehr nützlich.


1
Großartig! Es hat mein Problem gelöst, aber können Sie mir sagen, warum es anfangs nicht erlaubt war, das dynamische Modul einzustellen?
Suresh

26
@Suresh, ich denke, das Problem, warum es nicht erlaubt war, die Version zu ändern, ist, dass sie gesperrt ist. Wenn Sie mit der rechten Maustaste auf die Facette "Dynamisches Webmodul" klicken, wird die Option "Entsperren" angezeigt. Nach dem Entsperren, dem Deaktivieren der DWM-Facette, dem erneuten Anwenden der Facette und dem Aktualisieren des Projekt-Maven wurde der Fehler behoben.
Jonathan

2
+1. Ohne diesen äußerst wichtigen Punkt sind andere Antworten hier umsonst. Nur ich denke, Jonathan't Kommentar sollte in die Antwort aufgenommen werden.
Gangnus

1
+1 @Jonathan Dein Tipp hat die Arbeit gemacht. Sie müssen dies als Antwort veröffentlichen und wir sollten dies auch auf Eclipse erhöhen!
Aksappy

In meinem Fall funktioniert dies, warum im Webmodul pom eine andere Version für das Dnamic-Webmodul festgelegt wurde, so dass dies mit der Projektkonfiguration in Konflikt steht
ocrampico

49
  1. Klicken Sie auf Ihren Projektordner.
  2. Gehen Sie zu Fenster> Ansicht anzeigen> Navigator
  3. Gehen Sie zu Navigator und erweitern Sie den Ordner .settings
  4. org.eclipse.wst.common.project.facet.core.xmlDatei öffnen

    <?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. Ändern Sie die Version wie folgt <installed facet="jst.web" version="3.1"/>

  6. speichern
  7. Aktualisieren Sie einfach Ihr Projekt. Klicken Sie mit der rechten Maustaste auf den Projektordner> Maven> Projekt aktualisieren> Wählen Sie das Projekt aus und klicken Sie auf "OK".

Nur das hat bei mir funktioniert.


43

Ich hatte das gleiche Problem und habe sogar versucht, das Projekt zu entfernen und erneut hinzuzufügen. Der Trick bestand darin, das .settingsVerzeichnis zu entfernen .


2
Ich musste das auch tun. Ich habe ein Spring-Webprojekt mit einer Java-basierten Konfiguration verwendet, sodass mir das Aktualisieren einer web.xml nicht möglich war.
bcody

Warum es nach dem Löschen der Einstellung funktioniert hat, können Sie bitte erklären
Abhijit Chakra

Dieses .settings-Verzeichnis enthält eine Menge Dinge, von denen sich einige möglicherweise im Laufe der Zeit geändert haben. Ich weiß nicht genau, welcher Teil dieses Verhalten beeinflusst hat, aber das war wie ein Reset. Keine der anderen Antworten hat bei mir funktioniert, aber diese. Und anscheinend war ich nicht der einzige in dieser Situation.
Adrian Ber

Bei mir hat folgende Fehler aufgetreten: "Die Version der Projektfacette EAR kann nicht auf 1.3 geändert werden."
Giovanni P.

Hat für mich gearbeitet! Ich hatte den Fehler: "Version des dynamischen Webmoduls der Projektfacette kann nicht auf 3.0 geändert werden"
Anup Ghosh

24

Löschen

.settings 
.classpatch 
.projejct 
target

und importiere das Maven-Projekt erneut.


Wie importiere ich das Maven-Projekt erneut? Ich bin neu in diesem Bereich.
Daniel Brower

21

Was hat bei mir funktioniert:

  1. Ändern Sie das Java auf 1.8 (oder 1.7)

In Ihrem POM müssen Sie das Compiler-Plugin in <build>Abschnitt 1.8 (oder 1.7) in Abschnitt: einstellen.

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

Stellen Sie sicher, dass in Java Build 1.8 angezeigt wird. Wenn dies nicht der Fall ist, klicken Sie auf BEARBEITEN und wählen Sie aus, was es sein soll.

Geben Sie hier die Bildbeschreibung ein

  1. Ändern Sie web.xml so, dass auf 3.0 in der Version und im Link verwiesen wird

Geben Sie hier die Bildbeschreibung ein

  1. Stellen Sie sicher, dass Java in Project Facets auf 1.8 eingestellt ist

Geben Sie hier die Bildbeschreibung ein

  1. Zu diesem Zeitpunkt konnte ich das dynamische Webmodul noch nicht ändern.

Anstatt es zu ändern:

a) Deaktivieren Sie das Dynamic Web Module

b) bewerben

c) Überprüfen Sie es erneut. Neue Version 3.0 sollte eingestellt sein. **

Geben Sie hier die Bildbeschreibung ein

Nach dem Auftragen und erneuten Überprüfen:

Geben Sie hier die Bildbeschreibung ein

Hoffe das hilft.


15

Klicken Sie mit der rechten Maustaste auf das ProjektEigenschaften ; Deaktivieren Sie in Project Facets die Option Dynamic Web Module (Version sollte sein 3.1 sein ) und deaktivieren Sie JavaServer Faces (Version 2.2 ).

Ändere das:

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

dazu:

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

Entfernen Sie dann das Präfix vor param-nameund dergleichen.

Schließlich Maven -> Projekt aktualisieren .


8

Bitte öffnen Sie die Navigatoransicht und den folgenden Schritt

  1. (Fenster> Ansicht anzeigen> Andere> Allgemein) und stellen Sie fest, dass sich unter Ihrem Projekt ein Ordner ".settings" befindet, erweitern Sie ihn und öffnen Sie die Datei "org.eclipse.wst.common.project.facet.core.xml" unten Änderungen und speichern Sie die Datei.
  2. Ändern Sie die dynamische Webmodulversion in dieser Zeile in 2.5 -
  3. Ändern Sie die Java-Version in dieser Zeile auf 1.5 oder höher -.

5
Sie haben vergessen anzugeben, welche Ansicht Sie im Dialogfeld "Ansicht anzeigen" im Ordner "Allgemein" auswählen sollen. Ist es die "Navigator" -Ansicht?
Roberto Linares

6

Öffnen Sie web.xml über die Projektstruktur http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd "version =" 3.0 "> Servlet 3.0-Webanwendung

und aktualisieren Sie die Datei web.xml, indem Sie beispielsweise version = "2.5" ändern.

Ändern Sie auch die Datei org.eclipse.wst.common.project.facet.core.xml aus der Einstellungsdatei Ihres Projekts. Befolgen Sie die Schritte 1. Fenster> Ansicht anzeigen> Andere> Allgemein> Navigator

  1. Unter Ihrem Projektverzeichnis befindet sich ein Ordner ".settings"

  2. Ändern Sie die Version des dynamischen Webmoduls in dieser Zeile auf 2.5. 4. Ändern Sie die Java-Version in dieser Zeile auf 1.5 oder höher

Aktualisieren Sie nun Ihr Projekt und lassen Sie es auf Ihrem Server ausführen.

Folgen Sie dem Blog für die Lösung http://scrapillars.blogspot.in/2014/02/how-to-change-project-facet-in-eclipse.html

Die Lösung wird mit Bildabbildungen erstellt


Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert.
Micha

Ich habe Änderungen an der Datei pom.xml vorgenommen, wie in crunchify.com/… gezeigt . Das war jedoch nicht genug. Ich musste auch der Empfehlung folgen, den Ordner .settings zu öffnen und die Datei or.eclipse.wst.common.project.facet.core.xml zu bearbeiten.
Blackjack

6

Am besten und einfachen Schritten löste dieses Problem für mich 1) Eigenschaften -> Projekt Facets -> Auswahl aufheben / deaktivieren Sie das Kontrollkästchen Dynamische Web - Modul -> Anwenden 2 Now) auf die gewünschte Version ändern 3 Wenden) Überprüfen Sie die Web - Modul Dynamische Kontrollkästchen .. - Jetzt sind Sie fertig -


1
Hat gut funktioniert, aber was ist die Folge davon?
SG28

4

Dies ist eine weitere Möglichkeit, dieses Problem zu lösen (sehen Sie es sich an und hoffen Sie, dass es Ihnen bei der Lösung Ihres Problems hilft).

PROBLEM

Die Version des dynamischen Webmoduls 2.3 der Projektfacette kann nicht auf 3.0 geändert werden

LÖSUNG

  1. Gehen Sie zu Ihrem Projektstandort (ex.-D: / maven / todo)
  2. Gehen Sie zum Ordner .setting
  3. Suchen Sie nach dieser Datei: org.eclipse.wst.common.project.facet.core.xml
  4. Öffnen Sie die Datei, ändern Sie die Eigenschaft "jst.web" von 2.3 auf 3.0 und speichern Sie sie
  5. Klicken Sie mit der rechten Maustaste auf Projekt, aktualisieren Sie das Projekt und aktualisieren Sie den Maven
  6. Erledigt!!!....

3

Der Trick web.xml funktioniert, weil Sie WTP jetzt explizit mitteilen, dass Sie diese bestimmte Servlet-Version verwenden, unabhängig davon, was der Container unterstützt.

In meinem Fall verwende ich die Annotation-Konfiguration in einem Maven-Projekt und habe keine web.xml-Datei. Es stellt sich heraus, dass WTP in Abwesenheit einer web.xml Ihre Maven-Abhängigkeiten überprüft, um festzustellen, welche Servlet-Version verwendet werden soll. In meinem Fall hatte ich Folgendes definiert:

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

Das Ändern auf 6.0 hat das Problem behoben und verwendet jetzt Servlet 3.0 anstelle von 3.1, was die Standardeinstellung für JavaEE 7 ist. Da ich von Tomcat 8 auf Tomcat 7 wechseln musste, unterstützt Tomcat 7 nur das JavaEE 6-Webprofil. Jetzt funktionieren die Dinge wunderbar.


3

Ich hatte das gleiche Problem, das Bearbeiten von web.xml sowie das Ändern der Datei im Ordner .settings allein hat nicht geholfen. Meine Lösung bestand darin, das Maven-Compiler-Plugin direkt auf die gewünschte Java-Version zu verweisen, indem ich pom.xml bearbeitete:

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

Führen Sie nun Maven-> Projekt aktualisieren aus. Anschließend können Sie die Servlet-Version unter Eigenschaften-> Projektfacetten-> Dynamische Webmodulversion oder, wie bereits beschrieben, durch manuelles Bearbeiten von org.eclipse.wst.common.project.facet.core ändern. xml im Ordner .settings Ihres Projekts.


2

In meinem Fall wurde die web.xml von einem dtd referenziert. Nachdem ich dies in eine xsd-Referenz geändert hatte, wie die von Sydney, funktionierte es.


2

Ich hatte das gleiche Problem. Durch Löschen des Ordners .settings wurde das Problem behoben


1

Meine Lösung für das Problem, bei dem ich die Version des dynamischen Webmoduls der Projektfacette in Eclipse (Mars) nicht ändern konnte, war:

  • Deaktiviere Maven Nature
  • Stellen Sie sicher, dass die Namespaces web.xml auf die richtige Version verweisen
  • Aktivieren Sie Maven Nature erneut
  • Maven »Projekt aktualisieren (oder Alt + F5 drücken)

1

Wenn die Antwort von Sydney immer noch nicht hilft, versuchen Sie es unten. Nachdem Sie Sydneys Antwort befolgt haben, deaktivieren Sie unter Eigenschaften> Projektfacetten die Option Dynamisches Webmodul, ändern Sie die Version entsprechend Ihrer web.config und wählen Sie sie erneut aus. Übernehmen> Speichern Dann Maven Update.

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

Ich habe viele der Antworten hier ausprobiert, aber keine davon hat für mich funktioniert. Dann habe ich hier einen Artikel über mein Problem gefunden . Ich dachte daran, es auch hier zu teilen.

Nachfolgend sind die Schritte kurz aufgeführt.

  1. Legen Sie die Compiler-Konformitätsstufe fest.
  2. Projektfacette aktualisieren
  3. Aktualisieren Sie die installierte JRE aus den Einstellungen
  4. Hinzufügen einer Konfiguration in pom.xml zur Verwendung von Java 1.7 und schließlich
  5. Projekt von Maven aktualisieren.

1

Bei einem Maven Eclipse-Webprojekt müssen beim Ändern der Version des dynamischen Webmoduls drei Stellen überprüft werden. Wenn man Eclipse verwendet und nachdem Sie Folgendes überprüft haben: 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 Build Path und Compiler-Version ist 1.7

Sie haben immer noch eine Fehlermarkierung bei Maven:

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

Dann können Sie: das dynamische Webmodul deaktivieren und erneut aktivieren. Ich denke, das liegt daran, dass die Einstellungen der Eclipse-Datei irgendwie beschädigt sind. Über den zweiten Tipp Tomcat welche Version ist ein guter Hinweis.


1

Ich habe diesen Fehler erhalten, als ich versuche, ein allgemeines Java-Projekt in ein Maven-Projekt zu konvertieren .

Ich habe die Java-Compiler-Version ermittelt, die für mein Projekt erforderlich ist. Für mein Projekt ist die Mindestversion von Java 1.8.

Wenn Sie die Version auf einen niedrigeren 1.8Wert als meine IDE senken, wird sich beschweren, dass eine Reihe importierter Bibliotheken nicht erkannt werden. Daher bestimme ich meine minimale Java-Version als1.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

Geben Sie hier die Bildbeschreibung ein

Stellen Sie nun sicher, dass die Java-Compilerversion dieselbe Java-Version verwendet, die Sie in Project Facets festgelegt haben.

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.

Geben Sie hier die Bildbeschreibung ein

Nach den Änderungen sollte der Fehler behoben sein. Wenn der Fehler weiterhin besteht, klicken Sie mit der rechten Maustaste auf Projekt -> Maven -> Projekt aktualisieren



0

Öffnen Sie die Datei org.eclipse.wst.common.project.facet.core.xml und ändern Sie die Version jst.web in 3.0. Aktualisieren Sie auch die Datei web.xml auf Version 3.0. Speichern und aktualisieren Sie das Projekt. Hoffe das hilft. Ich benutze Eclipse Juno


0

Dies ist eine Variation der Antwort von Pagurix, jedoch unter Verwendung von Eclipse Mars.

Ändern Sie Ihre web.xml-Datei in web.bak

Ignorieren Sie die Fehler, wir werden sie als nächstes neu generieren.

Gehen Sie zu Projekteigenschaften -> Projektfacetten und stellen Sie die Version des Dynamic Web Module auf Ihre Anforderungen ein. Mit Eclipse können Sie jetzt speichern.

Klicken Sie nun mit der rechten Maustaste auf das Projekt. Wählen Sie Java EE Tools -> Generate Deployment Descriptor Stub.

Dadurch wird eine neue web.xml mit der erforderlichen Version erstellt.

Öffnen Sie die neue Datei web.xml und kopieren Sie sie über den XML-Header und das gesamte Web-App-Öffnungs-Tag in Ihre ursprüngliche web.bak. Löschen Sie die neue web.xml und benennen Sie web.bak wieder in web.xml um.

Erledigt.


0

Meins war Web Module 3.0in web.xml, aber in properties>Dynamic Web ModuleEs war an3.1

Ich habe das geändert 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">

Führen Sie nach dieser Änderung Folgendes aus: right click on project>Maven>Update Project...


0

Dieses Problem Mit der Version klicken Sie mit der rechten Maustaste auf das Projekt-> Eigenschaften-> Projektfacetten-> Rechtsklick auf Dynamic Web Module-> Entsperren-> Deaktivieren-> Wählen Sie 2.5 Version-> Übernehmen-> Aktualisieren Sie den Maven


0

Ich habe das Problem behoben, indem ich web.xml mit der richtigen Version, den xsd-Speicherorten und org.eclipse.wst.common.project.facet.core.xml mit der richtigen Version geändert und das Maven-Update durchgeführt habe .


0

Maven aktualisieren hat bei mir funktioniert

Projekt auswählen, dann ALT + F5 drücken und dann Projekt auswählen, auf OK klicken


0

Ich hatte das gleiche Symptom mit einer anderen Heilung. Ich habe versucht, meine JSF 2.2.4 / Spring 3.0-Webanwendung auf JSF 2.3 zu aktualisieren, um die neuen JSF-Websocket-Hooks dort zu genießen, und Eclipse (eigentlich STS) würde nicht kooperieren. In den Projektfacetten von Eclipse wurde JSF 2.3 erst verfügbar, als ich die Datei org.eclipse.wst.common.project.facet.core.xml direkt bearbeitet habe, wie in den vorherigen Antworten angegeben - der höchste Wert war 2.2.

Hier sind die Reifen, durch die ich gesprungen bin. Ich weiß nicht, dass all dies notwendig war, weil ich diese Konfiguration grundsätzlich nicht verstehe.

In Eclipse wurde häufig die beängstigende Warnung angezeigt: "Das Ändern eines facettierten Projekts, wenn Implementierungen einer oder mehrerer installierter Facetten nicht verfügbar sind, kann möglicherweise zu einem beschädigten Projekt führen. Möchten Sie wirklich fortfahren?" Dies veranlasste mich zu häufigeren Commits, aber es trat keine Korruption auf.

  1. Aktualisieren Sie JDK von 1.7 auf 1.8 in POM-, Eclipse-Compiler- und Eclipse-Projektfacetten.
  2. Aktualisieren Sie die folgenden Maven-Abhängigkeiten:

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

    ... zu:

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

... und ...

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

... zu:

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

Ich musste meine web.xml-Namespace-Deklarationen aktualisieren von:

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

... zu:

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

Ich musste Project Facets -> Dynamic Web Module von 2.5 auf 3.0 aktualisieren. Ich habe 3.1 ausprobiert, aber Fehler bekommen.

In diesem Prozess wurde häufig der Fehler im Titel dieses Beitrags "Version des dynamischen Webmoduls der Projektfacette kann nicht auf 3.0 geändert werden" angezeigt, und Eclipse lehnte es ab, das Projekt zu kompilieren oder JSF 2.3 in den Projektfacetten anzubieten. Als ich die Datei org.eclipse.wst.common.project.facet.core.xml wie angegeben bearbeitete, verschwanden die Fehler, Eclipse bot JSF 2.3 in Project Facets an, und das Projekt wurde kompiliert und lief unter Tomcat 9.0.8 einwandfrei. Project Facets warnte jedoch weiterhin: "Die Implementierung von Version 2.3 der Projektfacette jst.jsf wurde nicht gefunden. Die Funktionalität wird eingeschränkt." Ich vermute, dies bedeutet einfach, dass die automatische Vervollständigung und andere Eclipse-Funktionen nicht verfügbar sind, da die in meinem POM deklarierte JSF 2.3-Implementierung nicht gefunden werden kann.

Hoffe das hilft jemandem. Google-Suchanfragen ergaben nur diesen Beitrag von Ali Bassam und indirekt BalusC, der half.


0

Ich hatte das gleiche Problem - ich habe gerade das Projekt aus meinem Arbeitsbereich entfernt und dann die "Eclipse-Dateien / Ordner" bereinigt, zum Beispiel: .project, .settings, etc) und dann das Maven-Projekt erneut importiert, es hat funktioniert.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.