当尝试从 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 应用程序运行配置的类路径中。
我的运行配置的参数面板有以下配置: 在程序参数中:
-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
当我使用 Maven 从命令提示符运行 mvn gae:run 时,一切正常 - 服务器正常启动并且没有显示异常。
我已经为这个问题苦苦挣扎了几个小时,真的无法理解为什么会这样。
提前感谢您提供的任何提示。
塞巴斯蒂安
最佳答案
guice-servlet-3.0.jar
应该不在您的启动配置类路径中,它应该位于您的 D:\Dev\Projects\The Five Orbs\trunk\target\fiveorbs-0.1\WEB-INF\lib
文件夹。
关于eclipse - NoClassDefFoundError : GuiceServletContextListener when running GWT + GAE from Eclipse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6568750/