からGWT + GAEを実行すると、EclipseのからのWebApplicationとしての私のプロジェクトを実行しようとするとき、私は次のエラーを持っている:NoClassDefFoundErrorが:GuiceServletContextListener 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
クラスはしかし、コンパイル時に見つけることができます(私のカスタムGuiceServletConfigはGuiceServletContextListenerを拡張し、適切にコンパイルします)。
ライブラリーguice-servlet-3.0.jar
ライブラリーは、プロジェクトビルドパスと、EclipseのWebアプリケーション実行構成のクラスパスの両方に表示されます。実行:私はMVNのGAEを実行すると
-javaagent:D:\Dev\Programs\appengine-java-sdk\lib\agent\appengine-agent.jar -Xmx512m -Dappengine.sdk.root=D:\Dev\Programs\appengine-java-sdk
:VM引数で
-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
:プログラムの引数に :私の実行構成の
引数パネルには、次の設定がありますMavenのコマンドプロンプトからはすべて正常ですが、サーバーは正常に起動し、例外は表示されません。
私はこの問題に数時間苦労しています。なぜそれが起こったのか、実際には分かりません。
ご提供いただけるヒントを事前におねがいします。
セバスチャン・
実際、これはエラーを解決します。どうもありがとう! –
これはどのように実現しますか?クラスパスに 'guice-servlet-3.0.jar'をMavenの依存関係として持っていますので、Eclipseの中の' WEB-INF/lib'には入れません。 GAE SDKの依存関係のみが行います。私は自分のWARディレクトリを 'src/main/webapp'に設定しています(そこには' WEB-INF/'があります)、Mavenの' target/'から私のアプリケーションを実行したくないのです。最初に 'mvn package'を実行します。 – derabbink
それでも、それはMavenの仕組みです! (gwt-maven-pluginがどうにか_fixed_されるまで)。正直なところ、依存関係を変更するときに 'mvn package -Dgwt.compiler.skip'を実行する必要があります。別の方法としては、組み込みサーバを使用せず、 'mvn appengine:devserver'(またはGAEを使用していないときは' mvn jetty:run'または 'mvn tomcat7:run')を使い、' -noserver 'のGWT DevModeを実行します'モード。 –