Не удается зарегистрировать класс на сервере Ebean (Play Framework 2-Java)

Я получаю следующую ошибку при запуске моей Play Framework 2.2.проект x (Java):

Configuration error
Cannot register class [models.SomeClass] in Ebean server

сообщения об ошибках, отображаемые в браузере, указывают мне на строку ebean.default="models.*" в своем application.conf, а консоль говорит мне, что у меня есть java.lang.VerifyError: Bad type on operand stack в одном из моих методов. Нет ничего особенного в методах, для которых это происходит, и это произошло для горстки методов сейчас.

я обнаружил, что ошибки можно избежать с помощью статического метода вместо этого: это путем замены someObject.doJob()by SomeClass.doJob(someObject). Я использовал этот хак, и он работает, но я не очень доволен тем, что все мои методы статичны, когда они не должны быть.

кто-нибудь сталкивался с той же проблемой и нашел способ ее исправить (не делая методы статическими)?

2 ответов


решено: оказалось, что методы с проблемами все ссылочные поля, которые были отмечены как окончательные. По-видимому, Play Framework / Ebean не любит окончательные поля в классах сущностей. После удаления final ключевое слово из этого поля, проблема ушла.


Я использую play 2.3 и столкнулся с той же проблемой.

Я создал абстрактный класс и еще один, расширяющий этот абстрактный класс. Это вызывает ошибку. Похоже, ebean рассматривает каждый класс, расширяющий абстрактный класс, как конечный класс и выдает одно и то же сообщение об ошибке.

перемещение всех классов в другой пакет устранило проблему.