NoClassDefFoundError:从Eclipse运行GWT + GAE时的GuiceServletContextListener

时间:2011-07-04 07:55:16

标签: eclipse google-app-engine gwt guice

尝试从Eclipse运行我的项目作为WebApplication时,出现以下错误:

[WARN] failed com.google.apphosting.utils.jetty.DevAppEngineWebAppContext@4b903fd{/,D:\Dev\Projects\The Five Orbs\trunk\target\fiveorbs-0.1}: java.lang.NoClassDefFoundError: com/google/inject/servlet/GuiceServletContextListener
[WARN] failed JettyContainerService$ApiProxyHandler@eb4d977: 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应用程序运行配置的类路径中。

我的运行配置的 Arguments 面板具有以下配置: 在程序参数

-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
VM参数中的

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

当我运行mvn gae:使用Maven从命令提示符运行时,一切都很好 - 服务器正常启动并且没有显示异常。

我一直在努力解决这个问题几个小时,实在无法理解为什么会这样。

提前感谢您提供的任何提示。

塞巴斯蒂安

1 个答案:

答案 0 :(得分:5)

guice-servlet-3.0.jar 应该在启动配置类路径中,它应该存在于D:\Dev\Projects\The Five Orbs\trunk\target\fiveorbs-0.1\WEB-INF\lib文件夹中。