将我的 GAE 服务从 Java 8 迁移到 Java 11,我正在使用 App Engine 捆绑服务。
https://cloud.google.com/blog/products/serverless/support-for-app-engine-services-in-第二代-runtimes
API文档显示有数据存储API,
https://cloud.google.com/appengine/docs/standard/java11/reference/services/bundled
但是当我在 Java 11 运行时部署服务时,我得到了 $FeatureNotEnabledException
javax.servlet.ServletException:com.google.apphosting.api.ApiProxy$FeatureNotEnabledException:datastore_v3.RunQuery
有一篇博文说它回来了,
但我不确定我可以像这样使用“com.google.appengine.api.datastore.Query”
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Key key = KeyFactory.createKey("Memobook", user.getEmail());
Query query = new Query("Memo", key);
datastore.prepare(query);
在最新的 Cloud SDK CLI 版本以及最新的 GAE Maven 和 Gradle 插件中添加了支持。
确保您使用所有这些工具的最新版本,并且不在 pom.xml 或 Gradle 构建文件中固定旧的 Cloud SDK 版本。 使用最新版本,应该没问题。
例如:Cloud SDK CLI 版本:460.0.0 或更高版本 Maven GAE 插件:2.5.1 或更高版本 Gradle GAE 插件:2.5.0 或更高版本
添加 true appengine-web.xml 中的内容将启用 API。 你尝试过吗?
请参阅文档 https://cloud.google.com/appengine/docs/standard/java-gen2/services/access