2011-07-04 14 views
6

Gdy próbuje uruchomić mój projekt jako webapplication z Eclipse, mam następujący błąd:NoClassDefFoundError: GuiceServletContextListener podczas uruchamiania GWT + GAE od 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 

Klasę można znaleźć w czasie kompilacji, chociaż (mój niestandardowego GuiceServletConfig rozszerza GuiceServletContextListener i kompiluje się poprawnie).

Biblioteka guice-servlet-3.0.jar pojawia się zarówno w ścieżce budowania projektu oraz w ścieżce klasy mojego Web Application Configuration Run w Eclipse.

The Argumenty panel mojej konfiguracji Run posiada następujące config: w argumenty programowe:

-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 

w argumenty VM:

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

Gdy uruchomię mvn GAE: bieg z wiersza poleceń z Mavenem wszystko jest w porządku - serwer uruchamia się poprawnie i nie jest pokazywany żaden wyjątek.

mam zmaga się z tym problemem przez kilka godzin, a naprawdę nie mogę pojąć, dlaczego występuje.

Z góry dziękuję za wszelkie wskazówki, które możesz zaoferować.

Sébastien

Odpowiedz

5

guice-servlet-3.0.jar powinny nie być uruchomić ścieżkę klas konfiguracji, powinien żyć w folderze D:\Dev\Projects\The Five Orbs\trunk\target\fiveorbs-0.1\WEB-INF\lib.

+0

Rzeczywiście rozwiązuje to błąd. Wielkie dzięki! –

+3

Jak to osiągnąć? Mam 'guice-servlet-3.0.jar' w mojej ścieżce klasowej jako zależność Mavena, więc nie wejdzie ona do' WEB-INF/lib' wewnątrz Eclipse; Działają tylko zależności GAE SDK. Mój katalog WAR jest ustawiony na 'src/main/webapp' (tam jest' WEB-INF/') i nie chcę uruchamiać mojej aplikacji z' target/'Mavena, ponieważ wymaga to uruchomienia 'pakiet mvn' pierwszy. – derabbink

+1

A jednak tak działa Maven! (dopóki wtyczka gwt-maven nie jest w jakiś sposób "poprawiona"). Szczerze mówiąc, musisz tylko uruchomić 'pakiet mvn -Dgwt.compiler.skip' podczas zmiany swoich zależności, co nie jest tak często. Alternatywą jest nie używanie wbudowanego serwera i używanie 'mvn appengine: devserver' (lub' mvn jetty: run' lub 'mvn tomcat7: run' kiedy nie używasz GAE) wraz z uruchomieniem GWT DevMode w'-noserver tryb '. –

Powiązane problemy