it-swarm.it

Eclipse - Come posso cambiare un 'Project Facet' da Tomcat 6 a Tomcat 5.5?

(Eclipse 3.4, Ganimede)

Ho un progetto di Applicazione Web dinamica esistente in Eclipse. Quando ho creato il progetto, ho specificato "Configurazione predefinita per Apache Tomcat v6" nel menu a discesa "Configurazione".

Sono passati un mese o due e ora vorrei cambiare la configurazione in Tomcat "v5.5". (Questa sarà la versione di Tomcat sul server di produzione.)

Ho provato i seguenti passaggi (senza successo):

  • Ho selezionato Targeted Runtimes nell'ambito del progetto Properties
    Il Tomcat v5.5 L'opzione è stata disabilitata e l'interfaccia utente ha visualizzato questo messaggio:
    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.
  • Ho quindi fatto clic sul Uninstall Facets... link.
    Nella scheda Runtimes, solo Tomcat 6 visualizzato.
    Per Dynamic Web Module, Ho selezionato la versione 2.4 al posto di 2.5.
    Nella scheda Runtimes, Tomcat 5.5 ora visualizzato.
    Tuttavia, l'interfaccia utente ora ha visualizzato questo messaggio:
    Cannot change version of project facet Dynamic Web Module to 2.4.
    Il pulsante Finish è stato disabilitato, quindi ho raggiunto un vicolo cieco.

POSSO creare con successo un NUOVO progetto con una configurazione Tomcat v5.5. Per qualche ragione, tuttavia, non mi permetterà di effettuare il downgrade di un progetto esistente.

Come soluzione, ho creato un nuovo progetto e copiato i file di origine dal vecchio progetto. Tuttavia, la soluzione è stata piuttosto dolorosa e un po 'goffa.

Qualcuno può spiegare come posso "eseguire il downgrade" della configurazione del progetto da "Tomcat 6" a "Tomcat 5"? O forse far luce sul perché questo è successo?

Grazie
Pete

56
user13360

Questo è un tipo di hacking di Eclipse e potresti avere problemi a farlo ma questo dovrebbe funzionare:

Apri la vista del navigatore e scopri che c'è una cartella .settings sotto il tuo progetto espanderla e quindi aprire il file: org.Eclipse.wst.common.project.facet.core.xml dovresti vedere una riga che dice: <installed facet="jst.web" version="2.5"/> Cambialo in 2.4 e salva.

Assicurati solo che il tuo progetto non stia usando nulla di specifico per 2.5 e che dovresti essere bravo.

Controlla anche che il tuo web.xml abbia la configurazione corretta:

<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

Potrebbe essere vecchio, ma ho provato a trovare quanto segue in Eclipse Galilio.

Apri la vista del navigatore e scopri che c'è una cartella .settings sotto il tuo progetto espanderla e quindi aprire il file: org.Eclipse.wst.common.project.facet.core. Elimina il contenuto di questo file e fai clic con il pulsante destro del mouse sul progetto e fai clic su proprietà. Vai a Project Facats nella finestra popup in cui puoi fare clic sulle schede di runtime e convertire il tuo progetto nel nuovo aspetto desiderato.

7
Venkat

se si utilizza Maven, quindi chiudere Eclipse, quindi digitare >mvn Eclipse:eclipse -Dwtpversion=2.0 e riavvia Eclipse.

5
Karthik

Puoi provare a deselezionare la faccetta, applicare, modificare il valore della faccetta e controllare. Funziona per me in Eclipse Helios SR1.

Quindi la differenza principale è che lo faccio con "Dynamic Web Module".

Spero che funzioni anche per te.

0
xgomez

Ho visto la stessa cosa, quindi ho modificato il valore della versione dell'app Web in web.xml. Ciò potrebbe risolverlo.

0
sarabrab

Mi spiace, non riesco a pubblicare un commento senza abbastanza Rep, quindi ...

Penso che sia troppo difficile per Eclipse degradare in modo sicuro a uno standard inferiore perché non può davvero sapere se hai usato qualcosa del nuovo standard web. Quindi, se solo ti consente di farlo, potrebbe causare il fallimento del programma su una versione precedente.

Puoi sempre essere compatibile con le versioni precedenti ma non compatibile con le versioni precedenti.

0
William