2016-06-09 53 views
0

我想将一些小东西改为我的App引擎后端,但无法再上传到Appengine Google Cloud。所以我将appengine sdk的版本更新到版本1.9.21(就像另一个仍在更新的项目)。App Engine java.lang.NoClassDefFoundError:com/google/api/server/spi/guice/GuiceSystemServiceServletModule

现在我得到以下错误在运行项目:

java.lang.NoClassDefFoundError: com/google/api/server/spi/guice/GuiceSystemServiceServletModule

当我部署它,我百达得到这个错误:

java.lang.NoClassDefFoundError: nl/mynamespace/guice/FDGuiceSystemServiceServletModule

此类应包含在COM .google.appengine:appengine-endpoints:1.9.22 什么可能是错误的?

奇怪的是,我改变了对吉斯部分不信邪,在另一个项目,它正在以同样的方式...

FDGuiceServletContextListener.java:

public class FDGuiceServletContextListener extends GuiceServletContextListener { 

    @Override 
    protected Injector getInjector() { 
     return Guice.createInjector(new  FDGuiceSystemServiceServletModule()); 
    } 
} 

FDGuiceSystemServiceServletModule.java

public class FDGuiceSystemServiceServletModule extends GuiceSystemServiceServletModule { 

    @Override 
    protected void configureServlets() { 
     super.configureServlets(); 

     Set<Class<?>> serviceClasses = new HashSet<>(); 
     serviceClasses.add(DashboardApi.class); 
     serviceClasses.add(SalesAPI.class); 
     serviceClasses.add(LeadsApi.class); 

     serveGuiceSystemServiceServlet("/_ah/spi/*", serviceClasses); 
    } 
} 

的web.xml

[..] <filter> <filter-name>guiceFilter</filter-name> <filter-class>com.google.inject.servlet.GuiceFilter</filter-class> </filter> <filter-mapping> <filter-name>guiceFilter</filter-name> <url-pattern>/_ah/spi/*</url-pattern> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>nl.mynamespace.guice.FDGuiceServletContextListener</listener-class> </listener> [..]

回答

0

对不起,我是新来的Intellj /的Maven的构建系统。我不得不从项目结构 - >工件 - >输出布局 - > WEB-INF \ lib中删除这些库,并再次添加它们。

我习惯了Gradle和Android开发,我只需要改变gradle文件。

我仍然不明白为什么这必须在2个地方配置,但现在我永远不会忘记这一点。