Eclipse: come posso modificare un "Project Facet" da Tomcat 6 a Tomcat 5.5?
Domanda
(Eclissi 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".
Mancano un mese o due e ora vorrei modificare 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 ProgettoProperties
ILTomcat v5.5
l'opzione era disabilitata e l'interfaccia utente mostrava 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 cliccato su
Uninstall Facets...
collegamento.
Sotto ilRuntimes
scheda, soloTomcat 6
visualizzato.
PerDynamic Web Module
, ho selezionato la versione2.4
al posto di2.5
.
Sotto ilRuntimes
scheda,Tomcat 5.5
ora visualizzato.
Tuttavia, l'interfaccia utente ora mostrava questo messaggio:
Cannot change version of project facet Dynamic Web Module to 2.4.
ILFinish
il pulsante era disabilitato, quindi ho raggiunto un vicolo cieco.
POSSO creare con successo un NUOVO progetto con una configurazione Tomcat v5.5.Per qualche ragione, però, non mi permetterà di effettuare il downgrade di un progetto esistente.
Per ovviare al problema, ho creato un nuovo progetto e ho copiato i file sorgente dal vecchio progetto.Tuttavia, la soluzione è stata piuttosto dolorosa e alquanto 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é è successo?
Grazie
Pietro
Soluzione
Questo è una specie di hacking Eclipse e potresti avere problemi a farlo, ma dovrebbe funzionare:
Apri la vista navigatore e scopri che c'è una cartella .settings sotto il tuo progetto, espandila e quindi apri 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 utilizzi nulla di specifico per 2.5 e 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">
Altri suggerimenti
Potrebbe essere vecchio ma ho provato e ho trovato quanto segue in Eclipse Galilio.
Apri la vista navigatore e scopri che c'è una cartella .settings sotto il tuo progetto, espandila e quindi apri 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 dove puoi fare clic sulle schede runtime e convertire il tuo progetto nel nuovo facet che desideri.
se stai usando Maven, spegni Eclipse, quindi digita >mvn eclipse:eclipse -Dwtpversion=2.0
, e riavviare l'eclissi.
Mi dispiace, sembra che 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 utilizzato qualcosa dallo standard web più recente.Quindi, se ti consente solo di farlo, il tuo programma potrebbe fallire su una versione precedente.
Puoi sempre essere compatibile con le versioni precedenti ma non compatibile con le versioni successive.
Puoi provare a deselezionare la sfaccettatura, applicare, modificare il valore della sfaccettatura e controllare.Funziona per me in Eclipse Helios SR1.
Quindi la differenza principale è che lo faccio con il "Modulo Web dinamico".
Spero che funzioni anche per te.
Ho visto la stessa cosa, quindi ho modificato il valore della versione dell'app Web nel file web.xml
.In questo modo potresti risolvere il problema.
Se stai utilizzando Maven puoi generare le impostazioni di Eclipse utilizzando il plugin Maven Eclipse.
Per la versione jst.web il plug-in Eclipse di Maven tiene conto delle dipendenze del progetto.Se hai definito una dipendenza API servlet:
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>servlet-api</artifactId>
<version>6.0.32</version>
</dependency>
Il tuo parametro jst.web sarà 6.0
<faceted-project>
...
<installed facet="jst.web" version="6.0"/>
...
</faceted-project>