2011-07-04 7 views
6

から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のコマンドプロンプトからはすべて正常ですが、サーバーは正常に起動し、例外は表示されません。

私はこの問題に数時間苦労しています。なぜそれが起こったのか、実際には分かりません。

ご提供いただけるヒントを事前におねがいします。

セバスチャン・

答えて

5

guice-servlet-3.0.jarは、設定クラスパスを起動し、それはあなたのD:\Dev\Projects\The Five Orbs\trunk\target\fiveorbs-0.1\WEB-INF\libフォルダに生きるべきあなたの中にあってはなりません。

+0

実際、これはエラーを解決します。どうもありがとう! –

+3

これはどのように実現しますか?クラスパスに 'guice-servlet-3.0.jar'をMavenの依存関係として持っていますので、Eclipseの中の' WEB-INF/lib'には入れません。 GAE SDKの依存関係のみが行います。私は自分のWARディレクトリを 'src/main/webapp'に設定しています(そこには' WEB-INF/'があります)、Mavenの' target/'から私のアプリケーションを実行したくないのです。最初に 'mvn package'を実行します。 – derabbink

+1

それでも、それはMavenの仕組みです! (gwt-maven-pluginがどうにか_fixed_されるまで)。正直なところ、依存関係を変更するときに 'mvn package -Dgwt.compiler.skip'を実行する必要があります。別の方法としては、組み込みサーバを使用せず、 'mvn appengine:devserver'(またはGAEを使用していないときは' mvn jetty:run'または 'mvn tomcat7:run')を使い、' -noserver 'のGWT DevModeを実行します'モード。 –

関連する問題