2011-07-04 19 views
6

Quando si tenta di eseguire il mio progetto come WebApplication da Eclipse, ho il seguente errore:NoClassDefFoundError: GuiceServletContextListener durante l'esecuzione di GWT + GAE da Eclipse

[WARN] failed [email protected]3fd{/,D:\Dev\Projects\The Five Orbs\trunk\target\fiveorbs-0.1}: java.lang.NoClassDefFoundError: com/google/inject/servlet/GuiceServletContextListener 
[WARN] failed [email protected]: java.lang.NoClassDefFoundError: com/google/inject/servlet/GuiceServletContextListener 
[WARN] Error starting handlers 
java.lang.NoClassDefFoundError: com/google/inject/servlet/GuiceServletContextListener 

La classe può essere trovata al momento della compilazione se (mia abitudine GuiceServletConfig estende GuiceServletContextListener e compila correttamente).

La libreria guice-servlet-3.0.jar viene visualizzata sia nel percorso di generazione del progetto sia nel percorso di classe della mia configurazione di esecuzione dell'applicazione Web in Eclipse.

I Argomenti pannello della mia configurazione di esecuzione ha la seguente configurazione: in argomenti del programma:

-remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -startupUrl TheFiveOrbs.jsp -logLevel INFO -server com.google.appengine.tools.development.gwt.AppEngineLauncher -port 8888 -codeServerPort 9997 -war "D:\Dev\Projects\The Five Orbs\trunk\target\fiveorbs-0.1" com.fiveorbs.TheFiveOrbs 

in argomenti VM:

-javaagent:D:\Dev\Programs\appengine-java-sdk\lib\agent\appengine-agent.jar -Xmx512m -Dappengine.sdk.root=D:\Dev\Programs\appengine-java-sdk 

quando corro mvn gae: run dal prompt dei comandi con Maven, tuttavia, tutto funziona bene: il server viene avviato correttamente e non viene mostrata alcuna eccezione.

Sono stato alle prese con questo problema per un paio d'ore, e davvero non riesco a capire perché si verifica.

Grazie in anticipo per qualsiasi suggerimento che potresti essere in grado di offrire.

Sébastien

risposta

5

guice-servlet-3.0.jar dovrebbe non essere lanciate classpath di configurazione, dovrebbe vivere nella cartella D:\Dev\Projects\The Five Orbs\trunk\target\fiveorbs-0.1\WEB-INF\lib.

+0

In effetti, questo risolve l'errore. Molte grazie! –

+3

Come lo realizzi? Ho 'guice-servlet-3.0.jar' nel mio classpath come dipendenza da Maven, quindi non lo renderà in' WEB-INF/lib' all'interno di Eclipse; Solo le dipendenze dell'SDK di GAE. Ho la mia directory WAR impostata su 'src/main/webapp' (lì, c'è il' WEB-INF/'), e non voglio eseguire la mia app da' target/'di Maven, dal momento che richiede l'esecuzione 'pacchetto mvn' prima. – derabbink

+1

Eppure, è così che funziona Maven! (finché il plugin gwt-maven è in qualche modo _fixed_). Onestamente, devi solo eseguire 'pacchetto mvn -Dgwt.compiler.skip' quando modifichi le tue dipendenze, cosa che in realtà non è così frequente. Un'alternativa è quella di non usare il server incorporato e usare 'mvn appengine: devserver' (o' mvn jetty: run' o 'mvn tomcat7: run' quando non si sta usando GAE) insieme a eseguire GWT DevMode in' -noserver 'modalità. –

Problemi correlati