java - Spring Boot 与 Objectify

标签 java google-app-engine spring-boot google-cloud-datastore objectify

我使用 Spring Boot 和 Objectify 作为持久层。它正在部署到Flexible App Engine。 在每个实体中我都有一个 block :

static {
    ObjectifyService.register(LsUser.class); 
}

尝试从 Controller 类运行此代码时:

ObjectifyService.run(new VoidWork() {   
    @Override           
    public void vrun() {
        ofy.save().entity(new User())).now();           
    }       
});

运行时出现下一个错误:

java.lang.NullPointerException: No API environment is registered for this thread.
at com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppId(DatastoreApiHelper.java:180) ~[appengine-api-1.0-sdk-1.9.30.jar:na]
at com.google.appengine.api.datastore.DatastoreApiHelper.getCurrentAppIdNamespace(DatastoreApiHelper.java:196) ~[appengine-api-1.0-sdk-1.9.30.jar:na]
at com.google.appengine.api.datastore.Key.<init>(Key.java:96) ~[appengine-api-1.0-sdk-1.9.30.jar:na]

最佳答案

Objectify 仅适用于 App Engine 标准环境和 App Engine 灵活环境 (compat),目前已弃用。您应该改用 gcloud-java。

Using Cloud Datastore

关于java - Spring Boot 与 Objectify,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40795082/

相关文章:

java - Eclipse 不更新 JSP scriptlet 中的自定义方法

java - 使用asm如何声明非泛型类实现泛型接口(interface)

java - Thymeleaf 或 JSP : which is better with Spring Boot?

android - 在 Android 应用程序中将数据库部署到 Google Cloud Storage

java - 如何将 Spring SecurityContext 传递给 RestAssured

java - Spring 启动 : Mock user authentication with security context using Junit

java - 无后端事件不会触发

java - 如何在 Java 9 中以编程方式获取所有模块的列表?

java - 为什么我的 android 应用程序读取 åäö 而我的 java 应用程序却没有(从 GAE 获取数据时)?

python - Google App Engine python 入站邮件 LookupError : unknown encoding