wake-up-neo.com

Version des Dynamic Web Module für Projektfacetten kann nicht in 2.5 geändert werden

Ich habe eine Java-Web-App von einem anderen Unternehmen geerbt. Ich versuche, es in Eclipse zu laden (über Import Maven Project), und es wird eine Fehlermeldung angezeigt, dass "Version des Dynamic Web-Moduls für Projektfacetten nicht in 2.5 geändert werden kann".

Ich bin ein bisschen herumgestochert, und ich stelle fest, dass die web.xml-Datei mit beginnt 

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

und pom.xml gibt eine Abhängigkeit von an 

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

der Ordner .settings enthält jedoch eine Datei mit dieser

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <fixed facet="wst.jsdt.web"/>
  <installed facet="Java" version="1.6"/>
  <installed facet="jst.web" version="3.0"/>
  <installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>

und ich vermute, dass die hier angegebene 3.0 mit der an anderer Stelle angegebenen 2.5 in Konflikt steht. Ist das wahrscheinlich der Fall? Gibt es eine Möglichkeit, dass diese Kombination von Einstellungen NICHT zu Fehlern führen kann? (Ältere Version von Eclipse, zB?)

32
joelt

kurze Version

Versuche dies:

  • Deaktivieren Sie das Dynamic Web Module in Ihren Projektfacetten. Klicken Sie mit der rechten Maustaste auf das Projekt -> Einstellungen -> Projektfacetten
  • Führen Sie dann Maven -> Projekt aktualisieren erneut aus.

Lange Version

Ich hatte dieses Problem einige Male, als ich etwas über Eclipse Dynamic Web/Spring gelernt habe, und keine der anderen Lösungen hat mein Problem zuverlässig behoben oder mir geholfen zu verstehen, was das Problem verursacht hat. Ich glaube ich fange an.

Wenn Sie also ein Maven -> Update Project ausführen, fügt m2e (ich nehme an) das Dynamic Web Module zu den Project Facets hinzu. Hinzufügen ist hier das Schlüsselwort. Also, als ich hineinging und die web.xml von [...] http://Java.Sun.com/xml/ns/javaee/web-app_2_3.xsd "version =" 2.3 "aktualisierte > to [...] http://Java.Sun.com/xml/ns/javaee/web-app_2_5.xsd "version =" 2.5 ">

Ich habe die Fehlermeldung "Die Version von Project Facet Dynamic Web Module kann nicht auf 2.5 geändert werden."

Gleiches galt für 3.0, als ich das ausprobierte.

Es sieht so aus, als ob m2e in der Lage ist, dies zu Ihrem Projekt hinzuzufügen, aber wie der Fehler besagt, ist es nicht möglich, change es einmal einzustellen. Heben Sie die Auswahl einfach auf der Seite mit den Projektfacetten auf. Hit O.K. um Ihre Einstellungen zu speichern und Maven Update erneut auszuführen.

Eclipse Project Facets Dynamic Web Module

Sie sollten nicht müssen javax.servlet in Ihre pom.xml aufnehmen, wenn Sie eine Server-Facette (wie Tomcat) hinzugefügt haben.

Servlet-Api included in libraries

100
TheSporkboy

Siehe Version des Dynamic Web Module für Projektfacetten kann nicht in 3.0 geändert werden.

Schließen Sie das Projekt, und aktualisieren Sie direkt die Datei 'org.Eclipse.wst.common.project.facet.core.xml', die sich im Ordner .settings des Projekts befindet.

13
JackDev

Meine Vermutung ist, dass die ursprünglichen Autoren die Projektfacetten des Eclipse-Projekts nach dem ursprünglichen Import manuell geändert und Maven | nie ausgeführt haben Update danach.

Für Maven-Projekte ist es jedoch empfehlenswert, keine Eclipse-Metadaten (d. H. .classpath, .project, .settings/) an SCM zu übergeben und von m2e beim Import generieren zu lassen.

Ich empfehle daher, Ihre Projektstruktur zu kopieren, alle Eclipse-Metadaten aus der Kopie zu löschen und dann über m2e zu importieren.

Wenn beim Importieren immer noch Fehler auftreten, erhalten Sie zumindest einen Hinweis, wo die ursprünglichen Autoren die Standardeinstellungen angepasst haben, sodass Sie wissen, wo Sie mit dem Aufräumen beginnen müssen.

6
Harald Wellmann

Öffnen Sie die Navigatoransicht (Window> Show View> Other> General) 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" ”, Nehmen Sie die folgenden Änderungen vor und speichern Sie die Datei.

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

Ändern Sie die JSF-Version in dieser Zeile in 2.0 - <installed facet=”jst.jsf” version=”1.1″/>

Ändern Sie die Java-Version in dieser Zeile in 1.5 oder höher - <installed facet=”Java” version=”1.5″/>.

Nach diesen Änderungen können Sie die Version des Project Facet Dynamic Web Module in den Projekteigenschaften ändern. ohne Ihnen diese Garantie zu geben

3
Hatem Badawi

In meinem Fall wollte ich die dynamische Facettenform 2.3 in 3.1 ändern.

Was mir dabei geholfen hat, war eine Änderung in der web.xml

Von :

<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://Java.Sun.com/dtd/web-app_2_3.dtd" >

<web-app  > 
  <display-name>Archetype Created Web Application</display-name>
</web-app>

TO: 

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://Java.Sun.com/dtd/web-app_2_5.dtd" >

<web-app  > 
  <display-name>Archetype Created Web Application</display-name>
</web-app>

Gehen Sie dann zu Eigenschaften -> Projektfacetten -> Deaktivieren Sie das Dynamic Web Module -> OK

Maven-Projekt wurde aktualisiert. 

2

Dieser Blogbeitrag hat mir sehr gut geholfen: Wie kann ich die Version des Project Facet Dynamic Web Module nicht in 3.0 ändern? Fehler in Eclipse .

In diesem Beitrag wird erläutert, dass der Rechtsklick> Eigenschaften> Projektfacetten> Ändern der Version von Dynamic Web Module in die richtige Version nicht möglich ist. Versuchen Sie Folgendes: __ Rechtsklick> Eigenschaften> Ressourcen> Gehen Sie zu der Adresse, die in location Part angezeigt wird. Öffnen Sie die org.Eclipse.wst.common.project.facet.core-Datei und ändern Sie die jst.web-Version nach Bedarf. Aktualisieren Sie das Projekt. Es sollte funktionieren :)

1
user1419243

Meine Lösung war:

Header in meiner web.xml ändern:

Ich setze:

<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 

1
Gere

sie müssen beide Dateien ändern!

Erster Schritt: Schließen Sie Eclipse

Zweiter Schritt: Ändern Sie das Facettenetikett "jst.web" in Org.Eclipse.wst.common.project.facet.core.xml

Ändern Sie schließlich die Version von xsd in web.xml

Es funktioniert für mich

0
jirou

Beachten Sie, dass der aktuelle Speicherort des Schemas für Webanwendungen lautet 

xsi:schemaLocation="http://www.Oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-app_3_0.xsd"
0
Mike V.C.

@TheSporkboy ist fast richtig. Heute bin ich darauf gestoßen und nach einigem Fummeln an der Konfiguration war die Lösung wie folgt:

1- Ändern Sie die Einstellung für Dynamic Web Module in den Project Facets auf den neuesten Stand 3.1

2- Öffnen Sie die web.xml des Projekts von .../web-app_2_5.xsd bis .../web-app_3_1.xsd

3- Aktualisieren Sie das Maven-Projekt

0
AlexH