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
In effetti, questo risolve l'errore. Molte grazie! –
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
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à. –