gpt4 book ai didi

java - 使用 Ebean NullPointerException 玩 2.4

转载 作者:行者123 更新时间:2023-11-30 07:52:54 24 4
gpt4 key购买 nike

多年来我一直在与 Play 作斗争!框架,随着方向的不断转变和主要 API 的变化,它是一个不断移动的目标。

我最近有一个不幸的任务,即将与 Java 8 不兼容的 Play 2.1 或 2.2 项目更新为与 Java 8 兼容的 Play 2.4。

编辑:Heroku 不会放弃对 Java 7 的支持。

现在我正在 Ebean 类中处理 NullPointerException,但我不知道为什么。我有以下代码:

@Entity
public class User extends Model {

public static Model.Finder<Long, User> find() {
return new Model.Finder<Long, User>(User.class);
}

public static boolean emailExists(String email) {
if(User.find().where().eq("email",email).findRowCount() > 0) {
return true;
} else {
return false;
}
}
}

运行时出现 NullPointerException:

User.find().where().eq("email",email).findRowCount() > 0

堆栈跟踪是:

java.lang.NullPointerException
at com.avaje.ebean.Model$Find.query(Model.java:548)
at com.avaje.ebean.Model$Find.where(Model.java:742)
at models.User.emailExists(User.java:9)
at controllers.UserController.doLogin(UserController.java:208)

代码在开发中运行良好,但在推送到 Heroku 时崩溃,这是为什么?

如您所见,空指针发生在 com.avaje.ebean.Model$Find.query() 方法内部。我已经检查了 Ebean 中的代码,尝试根据现在的线索确定可能导致此问题的原因。我还将 Ebean 调试打开到最大级别 9,并且 ebean 似乎可以正确识别所有实体。

我正在使用:

addSbtPlugin("com.typesafe.sbt"% "sbt-play-ebean"% "1.0.0")

但升级为:

addSbtPlugin("com.typesafe.sbt"% "sbt-play-ebean"% "2.0.0")

这并没有帮助解决问题......

对此的任何指导都会非常有帮助!我玩完了!此时的框架,将不再将其用于任何项目......

最佳答案

Heroku 不会删除使用 Java 7 的服务器。我假设您指的是 cedar-14 migration ,这确实将默认 JDK 更改为 8。但是您仍然可以通过将 system.properties 文件添加到应用程序的根目录来使用 Java 7,其中包含以下内容:

java.runtime.version=1.7

将该文件也添加到 Git。

关于java - 使用 Ebean NullPointerException 玩 2.4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33114833/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com