web-dev-qa-db-fra.com

Eclipse - Comment puis-je changer une 'Facette de projet' de Tomcat 6 à Tomcat 5.5?

(Eclipse 3.4, Ganymède)

J'ai un projet d'application Web dynamique existant dans Eclipse. Lorsque j'ai créé le projet, j'ai spécifié "Configuration par défaut pour Apache Tomcat v6" sous le menu déroulant "Configuration".

C'est un mois ou deux plus tard, et je voudrais maintenant changer la configuration en Tomcat 'v5.5'. (Ce sera la version de Tomcat sur le serveur de production.)

J'ai essayé les étapes suivantes (sans succès):

  • J'ai sélectionné Targeted Runtimes Sous le projet Properties
    L'option Tomcat v5.5 A été désactivée et l'interface utilisateur a affiché ce message:
    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.
  • J'ai ensuite cliqué sur le lien Uninstall Facets....
    Sous l'onglet Runtimes, seul Tomcat 6 S'affiche.
    Pour Dynamic Web Module, J'ai sélectionné la version 2.4 À la place de 2.5.
    Sous l'onglet Runtimes, Tomcat 5.5 S'affiche maintenant.
    Cependant, l'interface utilisateur affiche maintenant ce message:
    Cannot change version of project facet Dynamic Web Module to 2.4.
    Le bouton Finish a été désactivé - j'ai donc atteint une impasse.

JE PEUX créer avec succès un NOUVEAU projet avec une configuration Tomcat v5.5. Pour une raison quelconque, cependant, cela ne me permettra pas de rétrograder un projet existant.

Pour contourner ce problème, j'ai créé un nouveau projet et copié les fichiers source de l'ancien projet. Néanmoins, la solution de contournement a été assez douloureuse et quelque peu maladroite.

Quelqu'un peut-il expliquer comment je peux "rétrograder" la configuration du projet de "Tomcat 6" à "Tomcat 5"? Ou peut-être éclairer pourquoi cela s'est produit?

Merci
Pete

56
user13360

C'est une sorte de piratage d'Eclipse et vous pouvez avoir des problèmes pour le faire, mais cela devrait fonctionner:

Ouvrez la vue du navigateur et recherchez qu'il existe un dossier .settings sous votre projet, développez-le, puis ouvrez le fichier: org.Eclipse.wst.common.project.facet.core.xml vous devriez voir une ligne qui dit: <installed facet="jst.web" version="2.5"/> Modifiez cela en 2.4 et enregistrez.

Assurez-vous simplement que votre projet n'utilise rien de spécifique pour 2.5 et vous devriez être bon.

Vérifiez également que votre fichier web.xml a la configuration correcte:

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

Cela peut être ancien mais j'ai essayé et trouvé ce qui suit dans Eclipse Galilio.

Ouvrez la vue du navigateur et recherchez qu'il existe un dossier .settings sous votre projet, développez-le, puis ouvrez le fichier: org.Eclipse.wst.common.project.facet.core Supprimez le contenu de ce fichier et cliquez avec le bouton droit sur le projet et cliquez sur propriétés. Accédez à Project Facats dans la fenêtre contextuelle, vous pouvez cliquer sur les onglets d'exécution et convertir votre projet en la nouvelle facette souhaitée.

7
Venkat

si vous utilisez Maven, arrêtez Eclipse, puis tapez >mvn Eclipse:eclipse -Dwtpversion=2.0 et redémarrez Eclipse.

5
Karthik

Vous pouvez essayer de décocher la facette, d'appliquer, de modifier la valeur de la facette et de vérifier. Cela fonctionne pour moi dans Eclipse Helios SR1.

Donc, la principale différence est que je le fais avec 'Dynamic Web Module'.

J'espère que ça marche aussi pour vous.

0
xgomez

J'ai vu la même chose, puis j'ai changé la valeur de la version de l'application Web dans le web.xml. Cela pourrait résoudre ce problème pour vous.

0
sarabrab

Désolé, il semble que je ne puisse pas poster de commentaire sans suffisamment de représentants, alors ...

Je pense qu'il est trop difficile pour Eclipse de se dégrader en toute sécurité à un niveau inférieur car il ne peut pas vraiment savoir si vous avez utilisé quelque chose de la nouvelle norme Web. Donc, si cela vous permet de le faire, cela pourrait entraîner l'échec de votre programme sur une ancienne version.

Vous pouvez toujours être rétrocompatible mais pas rétrocompatible.

0
William