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
Rzeczywiście rozwiązuje to błąd. Wielkie dzięki! –
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
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 '. –