尝试创建Memcache对象时,Google App Engine(Java)中出现异常

尝试创建Memcache对象时,Google App Engine(Java)中出现异常,java,google-app-engine,Java,Google App Engine,我要回到一个旧的谷歌应用程序引擎项目,在这个项目上我看到了一个bug。在此延迟期间,我一直在升级AppEngine SDK,现在设置为1.3。当我再次尝试运行同一项目时,我看到以下异常: java.lang.NoSuchMethodError: com.google.apphosting.api.ApiProxy$Environment.getDefaultNamespace()Ljava/lang/String; at com.google.appengine.api.NamespaceMan

我要回到一个旧的谷歌应用程序引擎项目,在这个项目上我看到了一个bug。在此延迟期间,我一直在升级AppEngine SDK,现在设置为1.3。当我再次尝试运行同一项目时,我看到以下异常:

java.lang.NoSuchMethodError: com.google.apphosting.api.ApiProxy$Environment.getDefaultNamespace()Ljava/lang/String;
at com.google.appengine.api.NamespaceManager.get(NamespaceManager.java:56)
at com.google.appengine.api.memcache.MemcacheServiceImpl.setNamespace(MemcacheServiceImpl.java:181)
at com.google.appengine.api.memcache.MemcacheServiceImpl.(MemcacheServiceImpl.java:145)
at com.google.appengine.api.memcache.MemcacheServiceFactory.getMemcacheService(MemcacheServiceFactory.java:25)
导致问题的线路是:

CacheManager.getInstance().getCacheFactory().createCache(Collections.emptyMap());
(这与AppEngine文档中建议的创建memcache对象的行相同。以前它可以正常工作。)


对如何修复它有什么建议吗

我发现问题是由于war/WEB-INF/lib文件夹中有多个版本的appengine SDK JAR造成的,可能是升级引起的。一旦我把它们取下来,问题就解决了,现在它可以像预期的那样工作了


war/WEB-INF/lib中有多个JAR版本(我没有手动将它们放在那里)还有其他原因吗?

只是检查一下:您是否导入了正确的名称空间?