Eclipse - Wie kann ich ein ‚Projekt Facet‘ von Tomcat 6 auf Tomcat 5.5 ändern?
Frage
(Eclipse-3.4, Ganymede)
Ich habe ein vorhandenes dynamische Web Application Projekt in Eclipse. Als ich das Projekt erstellt, I 'Default-Konfiguration für Apache Tomcat v6' angegeben unter 'Konfiguration' drop.
Es ist ein Monat oder 2 auf der ganzen Linie, und ich möchte nun die Konfiguration Tomcat ‚v5.5‘ ändern. (Dies wird die Version von Tomcat auf dem Produktionsserver sein.)
Ich habe die folgenden Schritte versucht (ohne Erfolg):
- Wie wähle ich
Targeted Runtimes
unter dem ProjektProperties
DieTomcat v5.5
Option wurde deaktiviert und die Benutzeroberfläche angezeigt Diese Nachricht:
If the runtime you want to select is not displayed or is disabled you may need to uninstall one or more of the currently installed project facets.
- Ich klickte dann auf dem
Uninstall Facets...
Link.
Unter demRuntimes
Registerkarte nur angezeigtTomcat 6
.
FürDynamic Web Module
, wählte ich Version2.4
anstelle von2.5
.
Unter demRuntimes
RegisterkarteTomcat 5.5
nun angezeigt.
Allerdings zeigte die Benutzeroberfläche jetzt diese Meldung:
Cannot change version of project facet Dynamic Web Module to 2.4.
DieFinish
Taste wurde deaktiviert -. So kam ich in eine Sackgasse
Ich kann erfolgreich ein neues Projekt mit einem Tomcat v5.5 Konfiguration erstellen. Aus irgendeinem Grund, obwohl werden, es lassen Sie mich ein vorhandenes Projekt nicht degradieren.‘
Als Behelfslösung, habe ich ein neues Projekt und die Quelldateien aus dem alten Projekt kopiert. Dennoch war die Behelfslösung ziemlich schmerzhaft und etwas unbeholfen.
Kann mir jemand erklären, wie ich kann ‚Herabstufung‘ der Projektkonfiguration von ‚Tomcat 6‘ ‚Tomcat 5‘? Oder vielleicht etwas Licht auf, warum dies geschehen?
Danke
Pete
Lösung
Dies ist eine Art von Eclipse Hacking und Sie können in Schwierigkeiten dies zu tun bekommen, aber dies sollte funktionieren:
Öffnen Sie die Navigator-Ansicht und feststellen, dass es ein .settings Ordner unter Ihrem Projekt, um es zu erweitern und dann die Datei öffnen: org.eclipse.wst.common.project.facet.core.xml
Sie eine Zeile sehen sollte, der sagt:
<installed facet="jst.web" version="2.5"/>
Ändern Sie diesen auf 2,4 und speichern.
So stellen Sie sicher, dass Ihr Projekt nicht etwas spezifisch für 2.5 verwenden und Sie sollten gut sein.
Überprüfen Sie auch Ihre web.xml die richtige Konfiguration hat:
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
Andere Tipps
Das mag alt sein, aber ich versuchte, und die folgende in Eclipse Galilio gefunden.
der Navigator-Ansicht öffnen und feststellen, dass es ein .settings Ordner unter Ihrem Projekt ist es zu erweitern und dann die Datei öffnen: org.eclipse.wst.common.project.facet.core.Delete den Inhalt dieser Datei und der rechten Maustaste über das Projekt und klicken Sie auf Eigenschaften. Zum Projekt Facats im Popup-Fenster dort können Sie auf Runtime-Tabs klicken und konvertieren Sie Ihr Projekt auf die neue Facette Sie wollen.
, wenn Sie mit Maven, dann Abschaltung Eclipse, dann geben >mvn eclipse:eclipse -Dwtpversion=2.0
, und starten Sie den Eclipse.
Leider scheint es, kann ich keinen Kommentar ohne genug Rep veröffentlichen, so ...
Ich denke, es ist zu schwierig für Eclipse sicher zu einem niedrigen Standard zu verschlechtern, weil es nicht wirklich wissen kann, wenn man etwas von dem neueren Web-Standard verwendet hat. Also, wenn es nur ermöglicht es Ihnen, das zu tun, es könnte dazu führen, dass Programm auf einer älteren Version zum Scheitern verurteilt.
Sie können immer rückwärts kompatibel sein, aber nicht vorwärts kompatibel.
Sie können versuchen, die Facette zu deaktivieren, anwenden, um den Wert der Facette ändern und überprüfen. Es funktioniert für mich in Eclipse Helios SR1.
Der Hauptunterschied ist, dass ich es mit ‚Dynamic Web-Modul‘ zu tun.
Ich hoffe, dass es für Sie funktioniert auch.
sah ich die gleiche Sache, dann änderte ich den Web-App-Version Wert im web.xml
. Dadurch könnte dieses Problem beheben für Sie.
Wenn Sie Maven verwenden, können Sie die Eclipse-Einstellungen erzeugen die Maven Eclipse-Plugin.
Für die jst.web Version nimmt die Maven Eclipse pluging Berücksichtigung der Abhängigkeiten des Projekts. Wenn Sie ein Servlet api Abhängigkeit definiert haben:
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>servlet-api</artifactId>
<version>6.0.32</version>
</dependency>
Sie jst.web Parameter wird 6.0
<faceted-project>
...
<installed facet="jst.web" version="6.0"/>
...
</faceted-project>