2011-02-05 7 views
6

Sto eseguendo un'applicazione web Java in Eclipse (Helios) utilizzando Tomcat 7. Il server si avvia correttamente (durata indicata) tuttavia la barra di avanzamento di Eclipse continua a girare dicendo che Tomcat sta iniziando. Alla fine viene raggiunto il timeout e viene generato un errore.Tomcat in Eclipse: Funziona ma timeout all'avvio comunque

Credo che Tomcat sia a posto dato che ho preso il comando che utilizza e l'ho eseguito manualmente nella shell. Tomcat funziona correttamente e sono in grado di accedere all'app Web con l'URL previsto. Posso anche premerlo dopo che è stato avviato e prima che si verifichi il timeout.

Ho reinstallato Eclipse, ho eseguito con pulito, ho cancellato/ricreato il server. Niente ha funzionato. Qualcuno ha qualche indizio?

risposta

1

ho trovato la risposta (solo dopo aver postato qui che, ironia della sorte, sembra essere come trovare la risposta di al proprio oggetto.)

La risposta è stata che il porto è stato utilizzato da un altro processo. Avrei dovuto saperlo ma l'aggiornamento di diversi pacchetti lo farà. Ma sui sintomi:

  • Tomcat inizia correttamente. In grado di colpire l'applicazione prima del timeout.
  • Eclipse sembra non essere in grado di determinare se il server è stato avviato o arrestato.

HTTP è attualmente in esecuzione sotto il default del 8080. Purtroppo, il mio archivio di dati ascoltava al 8080 (la mia ipotesi, come io non sono particolarmente sicuro di quello che fa con la porta solo che è allocato per JMX). Sto indovinando che Eclipse è in grado di rilevare Tomcat al 8080.

+0

la domanda è in te e la risposta è anche in te. ;) –

+0

Esattamente anche il mio problema ... grazie per la risposta! Ho avuto un'istanza di Vagrant in esecuzione su 8080, ma purtroppo Eclipse non mostra il problema durante l'avvio e segnala felicemente "Avvio del server in xxxxx ms". – uncrase

1

ho avuto questo problema, sembra che la mia versione gatto era buggy (Tomcat 7.0.23) passare la versione di Tomcat ad un altro (ad esempio Tomcat 7.0.14) per me funziona.

buona fortuna

0

Questo potrebbe accadere se due servlet sono stati mappati allo stesso URL richiesta, Tomcat si avvia bene, ma Eclipse non sarà in grado di generare il file web.xml corretto e quindi non essere in grado di pubblicare la webapp. Controllare la mappatura servlet @WebServlet("\TheURLThatShouldInvokeThisServlet") assicurarsi due servlet non avete lo stesso "TheURLThatShouldInvokeThisServlet".

(mettendolo per la cronaca!)

4

ho avuto questo problema, sembra che l'Eclipse chiama l'URL applicazione dopo l'avvio per assicurarsi che sia in esecuzione.

Un client proxy (pshione) aveva modificato il proxy di sistema in modo che l'eclissi non potesse chiamare la pagina iniziale e pensa che l'applicazione non stia ancora iniziando !!

ho rimosso il proxy e funziona bene ora!

Modificato:

Questo può anche accadere quando si avvia il gatto con SSL, ma la certificazione SSL non è valido. Quando si effettua una chiamata e un sito di certificazione SSL non valido, alcuni browser confermano se si desidera utilizzarne uno o meno, ma eclipse non può connettersi al sito ssl non valido! Suggerisco di testare il tuo sito con un normale http anziché con https.

+0

+1 per aver risolto il mio problema. – wener

+0

+1 per la nota di certificazione SSL. La mia correzione stava aggiungendo nuovamente il connettore 8080 (mantenendo comunque il mio connettore 8443 autofirmato). – csd

3

Alcuni aggiornamenti di causare problemi Java con il funzionamento di reti di Eclipse.Nello specifico, Eclipse tenta di utilizzare IPv6 invece di IPv4 e talvolta fallisce. Quando Eclipse avvia Tomcat, uno dei passaggi finali che esegue è il test della chiamata di debug a Tomcat. Questa è probabilmente la parte che sta pendendo. Fortunatamente, la correzione è molto semplice. Semplicemente diciamo ad Eclipse di usare invece IPv4.

Allo scopo, modificare il file eclipse.ini (che si trova nella directory di Eclipse) e aggiungere il seguente alla fine del file sulla propria riga:

-Djava.net.preferIPv4Stack=true 

riavviare Eclipse e si dovrebbe essere buono andare.

0

Ho avuto lo stesso problema, era dovuto ai connettori che avevo definito (avevo solo un connettore AJP).

L'aggiunta di un connettore HTTP a server.xml di Tomcat ha risolto il problema.