有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Play 2.4,带有一个NullPointerException

我已经为这部戏奋斗了很多年了!框架,随着方向的不断转变和API的重大变化,它是一个不断移动的目标

我最近遇到了一个不幸的任务,将一个与Java8不兼容的Play2.1或2.2项目更新为与Java8兼容的Play2.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时崩溃,为什么会这样

如您所见,null指针发生在com内部。阿瓦耶。埃宾。型号$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)

这无助于解决问题

这方面的任何指导都会非常有用!我看完戏了!框架,不再用于任何项目


共 (1) 个答案

  1. # 1 楼答案

    Heroku没有使用Java 7删除服务器。我假设您指的是cedar-14 migration,它确实将默认值JDK更改为8。但是,您仍然可以使用Java 7,方法是向应用程序的根目录添加一个system.properties文件,其中包含以下内容:

    java.runtime.version=1.7
    

    将该文件也添加到Git中