0

Google App Engine Flexible EnvironmentのサーブレットでDatastoreを実行しようとすると、「このスレッドにはAPI環境が登録されていません」と表示されます。 (詳細は下記をご覧ください。)GAEフレキシブル環境でデータストアのAPI環境を登録するにはどうすればよいですか?

ローカルマシンや単体テストでこのことについてStackOverflowに関する質問がありますが、これは一般的なサーブレットのGAEで発生しています。

ここでは、単純なクエリであるDatastoreコードの全体を示します。 API環境を登録する必要がありますか?もしそうなら、どうですか?

List<String> kinds = new ArrayList<String>(); 
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(DatastoreServiceConfig.Builder       .withImplicitTransactionManagementPolicy(ImplicitTransactionManagementPolicy.NONE)); 

PreparedQuery global = datastore.prepare(new Query("__kind__")); 
for (Entity globalStat : global.asIterable()) { 
    String kindName = globalStat.getKey().getName(); 
    kinds.add(kindName); 
} 

STACKTRACE

java.lang.NullPointerException: No API environment is registered for this thread. 
    at com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppId(DatastoreApiHelper.java:180) 
    at com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppIdNamespace(DatastoreApiHelper.java:196) 
    at com.google.appengine.api.datastore.Query.<init>(Query.java:208) 
    at com.google.appengine.api.datastore.Query.<init>(Query.java:139) 
    at ... 

答えて

2

あなたは「古い」のAPIを使用してデータストアを使用したい場合は、Compat enviromentを使用することができますCloud Datastore
を使用する必要がある柔軟な環境下でのデータストアを使用するためには

+0

ありがとうシェイ。 Google DatastoreにはさまざまなAPIがあります。クライアントAPI、AppEngine APIなど パッケージ名だけで、com.google.datastore(.v1)、com.google.cloud.datastore、およびcom.google.appengine.api.datastoreがあります。 –

+1

「Cloud Datastore」APIを使用していました。 –

+0

こんにちは!この情報源を教えてください。 –

関連する問題