2008-09-16 10 views
56

(Eclipse 3.4, Ganymede)Eclipse - Comment changer une 'facette de projet' de Tomcat 6 en Tomcat 5.5?

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' dans la liste déroulante 'Configuration'.

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

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

  • Je choisis Targeted Runtimes dans le cadre du projet Properties
    L'option Tomcat v5.5 a été désactivé 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 est affiché.
    Pour Dynamic Web Module, j'ai sélectionné la version 2.4 à la place de 2.5. Sous l'onglet Runtimes, Tomcat 5.5 est maintenant affiché.
    Cependant, l'interface utilisateur affiche désormais ce message:
    Cannot change version of project facet Dynamic Web Module to 2.4.
    Le bouton Finish a été désactivé - alors je suis arrivé à une impasse.

JE PEUX réussir à créer un NOUVEAU projet avec une configuration Tomcat v5.5. Pour une raison quelconque, cependant, il ne me laissera pas rétrograder 'un projet existant. En guise de solution de rechange, j'ai créé un nouveau projet et copié les fichiers source de l'ancien projet. Néanmoins, le work-around était assez pénible et quelque peu maladroit. Est-ce que quelqu'un peut expliquer comment je peux «rétrograder» la configuration du projet de «Tomcat 6» à «Tomcat 5»? Ou peut-être faire la lumière sur pourquoi cela est arrivé?

Merci
Pete

Répondre

87

C'est une sorte d'éclipse Hacking et vous pouvez avoir des ennuis faire cela, mais cela devrait fonctionner:

Ouvrez la vue du navigateur et de trouver qu'il ya 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"/> Changez cela en 2.4 et économisez. Assurez-vous que votre projet n'utilise rien de spécifique à la version 2.5 et que vous devriez être bon.

Vérifiez aussi votre 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"> 
+1

Merci. En fait, j'ai essayé votre hack avant de poster la question - avec un succès partiel. Lorsque j'ai tenté d'exécuter le projet à partir d'Eclipse (sous Tomcat 5.5), j'ai reçu une foule d'exceptions. J'ai donc lancé Eclipse pour copier la pile Exception ... et ça a marché! Une idée de pourquoi le hack est nécessaire? – user13360

+0

Awesome..Cette réponse m'a aidé à résoudre le problème de longue date. – SRy

+0

+1! Ce hack fonctionne vraiment :-) – Badal

0

Désolé, il semble que je ne peux pas poster un commentaire sans assez Rep so ...

je pense qu'il est trop difficile pour eclipse de se dégrader en toute sécurité à un niveau plus faible, car il ne peut pas vraiment savoir si vous avez utilisé quelque chose de la norme Web plus récente. Donc, si cela vous permet de faire cela, votre programme pourrait échouer sur une ancienne version.

Vous pouvez toujours être rétrocompatible, mais pas compatible avec les versions antérieures.

+0

Mmm - un peu étrange (pour ne pas mentionner ennuyeux). Quoi qu'il en soit, merci beaucoup pour la réponse. – user13360

+1

Vous ne pouvez pas le faire dans l'autre sens soit 2.4 -> 2.5: '( – scottyab

7

Cela peut être ancien, mais j'ai essayé et trouvé ce qui suit dans Eclipse Galilio. Ouvrez la vue du navigateur et constatez 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 à droite sur. cliquez sur le projet et cliquez sur propriétés. Allez dans Project Facats dans la fenêtre contextuelle, vous pouvez cliquer sur les onglets d'exécution et convertir votre projet dans la nouvelle facette que vous voulez.

+1

J'ai fait la même chose pour mon problème dans ** Eclipse Juno ** et cela a fonctionné aussi bien. Merci! – CatsAndCode

+0

Pas besoin de créer un Eclipse Juno nous permet d'ajouter une facette, puis de cliquer sur Dynamic Web Module et de changer la version en 2.5 Le premier OK peut vous donner une exception NullPointerException, rester clam et réessayer. –

0

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

La principale différence est que je le fais avec 'Dynamic Web Module'.

J'espère que cela fonctionne pour vous aussi.

5

si vous utilisez Maven, puis éclipse d'arrêt, puis tapez >mvn eclipse:eclipse -Dwtpversion=2.0 et redémarrez l'éclipse.

0

je vis la même chose, alors je l'ai changé la valeur de la version web-app dans le web.xml. Cela pourrait résoudre ce problème pour vous.

-1

Si vous utilisez Maven vous pouvez généré les paramètres d'éclipse en utilisant le plugin Eclipse Maven.

Pour la version jst.web la pluging éclipse Maven prend en compte les dépendances du projet. Si vous avez une dépendance api servlet définie:

<dependency> 
    <groupId>org.apache.tomcat</groupId> 
    <artifactId>servlet-api</artifactId> 
    <version>6.0.32</version> 
</dependency> 

paramètre jst.web Vous serez 6,0

<faceted-project> 
    ... 
    <installed facet="jst.web" version="6.0"/> 
    ... 
</faceted-project> 
Questions connexes