Исключение в Google App Engine (Java) при попытке создать объект Memcache - PullRequest
2 голосов
/ 29 января 2010

Я возвращаюсь к старому проекту Google App Engine, в котором я увидел ошибку. Во время этой задержки я обновлял свой 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. Ранее он работал нормально.)

Есть предложения как это исправить?

1 Ответ

3 голосов
/ 30 января 2010

Я обнаружил, что проблема была вызвана наличием нескольких версий JAR-файлов appengine SDK в папке war / WEB-INF / lib, предположительно вызванными обновлениями. Как только я удалил их, проблема была решена, и теперь она работает, как и ожидалось.

Есть ли какая-либо другая причина наличия нескольких версий JAR-файлов в war / WEB-INF / lib (я их туда не помещал вручную)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...