2015-10-14 4 views
1

Я много лет боролся с Play! Framework, с постоянным изменением направления и большими изменениями API, это постоянная движущаяся цель.Play 2.4 с Ebean NullPointerException

Я был недавно несчастную задачу обновления Play 2.1 или 2.2 проект, который не совместим с Java 8, к Игре 2.4, который совместим с Java 8.

EDIT: Heroku не снижается поддержка Java 7.

Теперь я имею дело с NullPointerException INSIDE класса Ebean, и я не уверен, почему. У меня есть следующий код:

@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) 

код прекрасно работает в разработке, но падает, когда толкать на Хероку, почему это было бы?

Как вы можете видеть, нулевой указатель происходит внутри метода com.avaje.ebean.Model $ Find.query(). Я просматриваю код внутри Ebean, чтобы попытаться определить, что может быть причиной этого с подсказкой. Я также включил отладку Ebean до максимального уровня 9, и ebean, по-видимому, правильно идентифицирует все объекты.

я использовал:

addSbtPlugin ("com.typesafe.sbt" % "SBT-плей-ebean" % "1.0.0")

но повышен до:

addSbtPlugin ("com.typesafe.sbt" % "SBT-плей-ebean" % "2.0.0")

, которые не помогли решить эту проблему ....

Любое наведение на это было бы так полезно! Я за игру! Рамки в этой точке и больше не будет использовать его для любых проектов .....

ответ

1

Heroku не удаление серверов с Java 7. Я предполагаю, что вы имеете в виду cedar-14 migration, который не изменит по умолчанию JDK 8 . Но вы все еще можете использовать Java 7, добавив system.properties файл в корневую директорию вашего приложения с этим содержимым:

java.runtime.version=1.7 

Добавить файл в GIT, а также.

+0

Благодарим вас за эту информацию, хотя это и решит проблему развертывания, но не уверен, почему Ebean не развертывает на Heroku, когда она работает в среде dev. – ossys

+0

Я подозреваю, что это имеет какое-то отношение к настройке базы данных в вашем приложении. если вы откроете билет по адресу http://help.heroku.com, мы сможем поближе познакомиться – codefinger

+0

Я пойду вперед и отправлю билет, чтобы попытаться понять это, спасибо! – ossys

Смежные вопросы