5

TimerTaskGoogle App Engine の dataStore から定期的にエントリを削除するように設定しようとしています。だから私は で をセットアップしましServletContextListenerTimer

内でcontextInitialized、Objectify クラスを登録しました。

ObjectifyService.register(Person.class);

ただし、タスクが実際に実行されると、API 環境が設定されていないとエラーが表示されます。

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)

何か案は?クラスを登録する行を変更しようとしましたObjectifyService.factory().register(Person.class);が、役に立たないようです。

4

1 に答える 1