2017-01-31 4 views
1

Immer wenn ich versuche, auf MemCache zugreifen, bekomme ich eine java.lang.NoSuchFieldError: usingExperimentalRuntime. Keine Dokumentation zu diesem Feld von dem, was ich finden kann. Gibt es eine Konfigurationsoption, die mir nicht bekannt ist?Get java.lang.NoSuchFieldError: usingExperimentalRuntime in GAE MemCache

Hier ist der Quellcode:

MemcacheService syncCache = MemcacheServiceFactory.getMemcacheService(); 
syncCache.setErrorHandler(ErrorHandlers.getConsistentLogAndContinue(Level.ALL)); 

Object cacheObject = syncCache.get("arbitrary"); 

Das letzte Zeile mit diesem Fehler abstürzt (Teilstapel auf meinem Code Trace up):

Caused by: java.lang.NoSuchFieldError: usingExperimentalRuntime 
     at com.google.appengine.api.memcache.MemcacheServicePb$MemcacheGetRequest.writeTo(MemcacheServicePb.java:1511) 
     at com.google.appengine.repackaged.com.google.protobuf.AbstractMessageLite.toByteArray(AbstractMessageLite.java:41) 
     at com.google.appengine.api.memcache.MemcacheServiceApiHelper.makeAsyncCall(MemcacheServiceApiHelper.java:97) 
     at com.google.appengine.api.memcache.AsyncMemcacheServiceImpl.doGet(AsyncMemcacheServiceImpl.java:405) 
     at com.google.appengine.api.memcache.AsyncMemcacheServiceImpl.getIdentifiable(AsyncMemcacheServiceImpl.java:422) 
     at com.google.appengine.api.memcache.MemcacheServiceImpl.getIdentifiable(MemcacheServiceImpl.java:54) 
     at com.myCode.CacheOrDbUtil.getUser(CacheOrDbUtil.java:27) 

Was diese seltsame macht so ist, dass der Code war Arbeiten letzte Woche, komplett mit Unit Tests mit MemCache. Jetzt versagen sie. Natürlich habe ich versucht, rückgängig gemacht alles, was ich getan habe, aber ohne Erfolg:

  • Upgrade gcloud
  • Downgrading gcloud
  • alle anderen Server wird heruntergefahren
  • Neustarten der Maschine
  • Zurücksetzen dauern bekannt guten Code Revision

Antwort

2

Entweder bleiben mit 1.9.48 (aus die Box in der Cloud SDK für jetzt, nächste Woche 1.9.49) aktualisiert und stellen Sie sicher, dass Ihre pom.xml/gradle Dateien bauen 1.9.48 alle verwenden, oder verwenden Sie das Standard appengine Maven Plugin von https://github.com/GoogleCloudPlatform/appengine-maven-plugin

<plugin> 
    <groupId>com.google.appengine</groupId> 
    <artifactId>appengine-maven-plugin</artifactId> 
    <version>1.9.49</version> 
</plugin> 

oder gleichwertiges Gradle Plugin für AppEngine (nicht das Cloud SDK ein ..)

+0

Ich setzte Gradle auf 1.9.48 für Test und Dev-Server und alles funktionierte. Vielen Dank! Vor dem Dev wurde eingestellt, um die neueste (die '+' Version in Großbuchstaben) und den Test zu verwenden, 1.9.46. Die Einstellung auf 1.9.49 funktionierte für den Dev-Server nicht. Die neueste stabile Version funktionierte jedoch. –

0

Try appEngineVersion zu 1.9.49

zu aktualisieren 10
+0

Ich habe gestern ein Update gemacht, bevor ich den ursprünglichen Beitrag gemacht habe und es dauerte nur app-engine-java auf Version 1.9.48. Die Python-Version ist 1.9.49, aber ich benutze Python nicht. Wo könnte ich die 1.9.49 Version der Java Engine bekommen? –

Verwandte Themen