2008-09-16 24 views
56

(Eclipse 3.4, Ganimede)Eclipse - Come posso modificare un "Project Facet" da Tomcat 6 a Tomcat 5.5?

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

È un mese o due in fondo alla linea e ora desidero 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 Progetto Properties
    L'opzione Tomcat v5.5 è stato disattivato 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 collegamento Uninstall Facets....
    Nella scheda Runtimes, è visualizzato solo Tomcat 6.
    Per Dynamic Web Module, ho selezionato la versione 2.4 al posto di 2.5.
    Sotto la scheda Runtimes, Tomcat 5.5 ora visualizzato.
    Tuttavia, l'interfaccia utente ora visualizzato questo messaggio:
    Cannot change version of project facet Dynamic Web Module to 2.4.
    Il pulsante Finish era disabilitato - così ho raggiunto un vicolo cieco.

POSSO creare correttamente un NUOVO progetto con una configurazione di Tomcat v5.5. Per qualche ragione, però, 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. Nondimeno, la soluzione era abbastanza 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 motivo per cui è successo?

Grazie
Pete

risposta

87

questo è una specie di hacking Eclipse e si può ottenere nei guai a fare questo, ma questo dovrebbe funzionare:

Aprire la visualizzazione del navigatore e scoprire che c'è una cartella .settings sotto la vostra progetto espanderlo e quindi aprire il file: org.eclipse.wst.common.project.facet.core.xml si dovrebbe vedere una riga che dice: <installed facet="jst.web" version="2.5"/> Cambiare quello in 2.4 e salvare.

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

Anche controllare il vostro web.xml ha 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"> 
+1

Grazie. In realtà ho provato il tuo trucco prima di pubblicare la domanda - con parziale successo. Quando ho tentato di eseguire il progetto da Eclipse (sotto Tomcat 5.5) ho avuto un sacco di eccezioni. Così ho acceso Eclipse per copiare lo stack Exception ... e ha funzionato! Qualche idea del perché è richiesto l'hack? – user13360

+0

Impressionante..Questa risposta mi ha aiutato a risolvere problemi di vecchia data. – SRy

+0

+1! Questo hack funziona davvero :-) – Badal

0

dispiace sembra non riesco a pubblicare un commento senza abbastanza Rep così ...

Penso che sia troppo difficile per Eclipse degradarsi in modo sicuro a uno standard inferiore perché non è in grado di sapere se hai utilizzato qualcosa dal nuovo standard web. Quindi, se solo ti permette di farlo, potrebbe far fallire il tuo programma su una versione precedente.

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

+0

Mmm - un po 'strano (per non dire fastidioso). Comunque, molte grazie per la risposta. – user13360

+1

Non si può fare l'altro modo 2.4 -> 2.5: '( – scottyab

7

Questo potrebbe essere vecchio ma ho provato e ho trovato il seguente in eclissi Galilio.

Aprire la vista di navigazione e scoprire che c'è una cartella .settings sotto il progetto espanderla e quindi aprire il file: org.eclipse.wst.common.project.facet.core. Elimina il contenuto di questo file e destra clicca sul progetto e clicca sulle 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 che desideri.

+1

Ho fatto la stessa cosa per il mio problema in ** Eclipse Juno ** e ha funzionato anche lì. Grazie! – CatsAndCode

+0

Non è necessario creare un Dynamic Web Project per fare il trucco, Eclipse Juno ci consente di aggiungere un facet, quindi fare clic con il pulsante destro del mouse su Dynamic Web Module e modificare la versione su 2.5 Il primo OK potrebbe darti un NullPointerException, rimanere clam e riprovare. –

0

È possibile provare a deselezionare il facet, applicare, modificare il valore del facet 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.

5

se si utilizza Maven, quindi spegnere eclissi, quindi digitare >mvn eclipse:eclipse -Dwtpversion=2.0 e riavviare l'eclissi.

0

Ho visto la stessa cosa, quindi ho modificato il valore della versione dell'app Web nel web.xml. Farlo potrebbe risolvere il problema per te.

-1

Se si utilizza Maven, è possibile generare le impostazioni di eclissi utilizzando il plug-in Maven Eclipse.

Per la versione jst.web il plug-in Maven eclipse tiene conto delle dipendenze del progetto. Se si dispone di una dipendenza servlet api definito:

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

parametro È jst.web sarà 6,0

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