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 ...
ありがとうシェイ。 Google DatastoreにはさまざまなAPIがあります。クライアントAPI、AppEngine APIなど パッケージ名だけで、com.google.datastore(.v1)、com.google.cloud.datastore、およびcom.google.appengine.api.datastoreがあります。 –
「Cloud Datastore」APIを使用していました。 –
こんにちは!この情報源を教えてください。 –