2011-07-04 14 views
6

Al intentar ejecutar mi proyecto como un WebApplication desde Eclipse, tengo el siguiente error:NoClassDefFoundError: GuiceServletContextListener cuando se ejecuta GWT + GAE desde 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 clase se puede encontrar en tiempo de compilación, aunque (mi costumbre GuiceServletConfig extiende GuiceServletContextListener y se compila correctamente).

La biblioteca guice-servlet-3.0.jar aparece tanto en la ruta de compilación del proyecto como en la ruta de clase de la configuración de ejecución de la aplicación web en Eclipse.

Los Argumentos Panel de mi configuración de ejecución tiene la siguiente configuración: en argumentos de programa:

-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 

en argumentos de VM:

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

cuando corro mvn gae: plazo desde el símbolo del sistema con Maven, todo está bien, el servidor se inicia correctamente y no se muestra ninguna excepción.

He estado luchando con este problema durante un par de horas, y realmente no puedo entender por qué ocurre.

Gracias de antemano por cualquier sugerencia que pueda ofrecer.

Sébastien

Respuesta

5

guice-servlet-3.0.jar debe no ser que inicie en la ruta de clase de configuración, debe vivir en su carpeta D:\Dev\Projects\The Five Orbs\trunk\target\fiveorbs-0.1\WEB-INF\lib.

+0

De hecho, esto resuelve el error. ¡Muchas gracias! –

+3

¿Cómo lo logras? Tengo 'guice-servlet-3.0.jar' en mi classpath como una dependencia de Maven, por lo que no entrará en' WEB-INF/lib' dentro de Eclipse; Solo las dependencias GAE SDK sí. Tengo mi directorio WAR configurado en 'src/main/webapp' (allí está el' WEB-INF/'), y no quiero ejecutar mi aplicación desde' target/'de Maven, ya que eso requiere ejecutar 'mvn package' primero. – derabbink

+1

Y, sin embargo, ¡así es como funciona Maven! (hasta que el plugin gwt-maven sea de alguna manera _fixed_). Honestamente, solo necesitas ejecutar el paquete 'mvn -Dgwt.compiler.skip' cuando cambias tus dependencias, lo cual no es tan frecuente. Una alternativa es no usar el servidor incorporado y usar 'mvn appengine: devserver' (o' mvn embarcadero: ejecutar' o 'mvn tomcat7: ejecutar' cuando no se usa GAE) junto con ejecutar el GWT DevMode en''servidor 'modo. –

Cuestiones relacionadas