Objectify und TimerTask: Für diesen Thread ist keine API-Umgebung registriert

Ich versuche eine zu bekommenTimerTask Richten Sie diese Option ein, um Einträge regelmäßig aus dem dataStore von Google App Engine zu entfernen. Also habe ich eineServletContextListener mit einerTimer.

In dercontextInitializedIch habe meine Objectify-Klassen registriert:

ObjectifyService.register(Person.class);

Wenn die Task jedoch tatsächlich ausgeführt wird, wird beanstandet, dass keine API-Umgebung eingerichtet wurde:

Exception in thread "Timer-0" java.lang.NullPointerException: No API environment is registered for this thread.
    at com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppId(DatastoreApiHelper.java:80)
    at com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppIdNamespace(DatastoreApiHelper.java:90)
    at com.google.appengine.api.datastore.Query.<init>(Query.java:214)
    at com.google.appengine.api.datastore.Query.<init>(Query.java:143)
    at com.googlecode.objectify.impl.cmd.QueryImpl.<init>(QueryImpl.java:72)
    at com.googlecode.objectify.impl.cmd.LoadTypeImpl.createQuery(LoadTypeImpl.java:50)
    at com.googlecode.objectify.impl.cmd.LoadTypeImpl.filter(LoadTypeImpl.java:58)
    at myApp.MyServletContextListener$MyTask.run(MyServletContextListener.java:58)
    at java.util.TimerThread.mainLoop(Timer.java:555)
    at java.util.TimerThread.run(Timer.java:505)

Irgendwelche Ideen? Ich habe versucht, die Zeile zu ändern, in der die Klasse registriert istObjectifyService.factory().register(Person.class); aber es schien nicht zu helfen.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage