Java 播放2.4与Ebean NullPointerException
我已经为这部戏奋斗了很多年了!框架,随着方向的不断转变和API的重大变化,它是一个不断移动的目标 我最近遇到了一个不幸的任务,将一个与Java8不兼容的Play2.1或2.2项目更新为与Java8兼容的Play2.4 编辑:Heroku不会放弃对Java 7的支持 现在我正在处理Ebean类中的NullPointerException,我不知道为什么。我有以下代码:Java 播放2.4与Ebean NullPointerException,java,heroku,playframework,playframework-2.0,ebean,Java,Heroku,Playframework,Playframework 2.0,Ebean,我已经为这部戏奋斗了很多年了!框架,随着方向的不断转变和API的重大变化,它是一个不断移动的目标 我最近遇到了一个不幸的任务,将一个与Java8不兼容的Play2.1或2.2项目更新为与Java8兼容的Play2.4 编辑:Heroku不会放弃对Java 7的支持 现在我正在处理Ebean类中的NullPointerException,我不知道为什么。我有以下代码: @Entity public class User extends Model { public static Mode
@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;
}
}
}
堆栈跟踪是:
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的服务器。我假设您指的是,它确实将默认值JDK更改为8。但是,您仍然可以使用Java 7,方法是向应用程序的根目录添加一个
system.properties
文件,其中包含以下内容:
java.runtime.version=1.7
也将该文件添加到Git。感谢您提供此信息,虽然这确实解决了部署问题,但仍不确定Ebean在开发环境中运行时为什么不在Heroku上部署。我怀疑这与应用程序中数据库的配置有关。如果你在开罚单,我们可以仔细看看,我会继续提交一张罚单,尝试解决这个问题,谢谢!
java.runtime.version=1.7