2012-08-30 49 views
5

首先的登记类,这个问题看起来相像: Play Framework: PersistenceException: The type is not a registered entity? (Ebean),但它不是...游戏框架:2.0.2的PersistenceException:不能在Ebean服务器

我试图挽救实体,但它甚至没有渲染模板,我重新启动后,它只是给主题中的错误。 当然,应用程序编译。

我已经做了所有使用EBean与播放的步骤:

  • @Entity(javax.persistence.Entity)注释模型
  • 模型扩展模型(play.db.ebean.Model
  • Ebean是启用我application.confebean.default="models.*"(我的类都在models包)

有什么建议?我可以做的测试?要检查的东西? 为了公平起见,计算器是我的最后一招......

由于提前,

完整的堆栈跟踪:

play.api.Configuration$$anon$1: Configuration error [Cannot register class [models.Producer] in Ebean server] 
    at play.api.Configuration$.play$api$Configuration$$configError(Configuration.scala:71) ~[play_2.9.1.jar:2.0.2] 
    at play.api.Configuration.reportError(Configuration.scala:258) ~[play_2.9.1.jar:2.0.2] 
    at play.Configuration.reportError(Configuration.java:119) ~[play_2.9.1.jar:2.0.2] 
    at play.db.ebean.EbeanPlugin.onStart(EbeanPlugin.java:71) ~[play_2.9.1.jar:2.0.2] 
    at play.api.Play$$anonfun$start$1.apply(Play.scala:60) ~[play_2.9.1.jar:2.0.2] 
    at play.api.Play$$anonfun$start$1.apply(Play.scala:60) ~[play_2.9.1.jar:2.0.2] 
Caused by: java.lang.ExceptionInInitializerError: null 
    at java.lang.Class.forName0(Native Method) ~[na:1.7.0_02] 
    at java.lang.Class.forName(Class.java:264) ~[na:1.7.0_02] 
    at play.db.ebean.EbeanPlugin.onStart(EbeanPlugin.java:69) ~[play_2.9.1.jar:2.0.2] 
    at play.api.Play$$anonfun$start$1.apply(Play.scala:60) ~[play_2.9.1.jar:2.0.2] 
    at play.api.Play$$anonfun$start$1.apply(Play.scala:60) ~[play_2.9.1.jar:2.0.2] 
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59) ~[scala-library.jar:0.11.3] 
Caused by: java.lang.RuntimeException: DataSource user is null? 
    at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.<init>(DataSourcePool.java:198) ~[ebean.jar:na] 
    at com.avaje.ebeaninternal.server.lib.sql.DataSourceManager.getDataSource(DataSourceManager.java:210) ~[ebean.jar:na] 
    at com.avaje.ebeaninternal.server.lib.sql.DataSourceGlobalManager.getDataSource(DataSourceGlobalManager.java:63) ~[ebean.jar:na] 
    at com.avaje.ebeaninternal.server.core.DefaultServerFactory.getDataSourceFromConfig(DefaultServerFactory.java:427) ~[ebean.jar:na] 
    at com.avaje.ebeaninternal.server.core.DefaultServerFactory.setDataSource(DefaultServerFactory.java:388) ~[ebean.jar:na] 
    at com.avaje.ebeaninternal.server.core.DefaultServerFactory.createServer(DefaultServerFactory.java:168) ~[ebean.jar:na] 
+1

得到同样的问题..:\这让我疯狂 –

+0

对我而言,每次播放项目的目录都会发生变化。不知何故,它在编译代码中硬编码剧本运行的目录。 –

回答

-1

从日志中,似乎你必须设置数据源用户:

Caused by: java.lang.RuntimeException: DataSource user is null? 

你可以通过编辑倒的conf/application.con文件:

db.default.driver=org.h2.Driver 
db.default.url="jdbc:h2:mem:DB_NAME" 
db.default.user=sa  <-- HERE !! 
db.default.password="" 
db.default.logStatements=true 
+1

嗨,感谢您的回答,但那不是它......我的数据库是在application.conf中设置的。我不知道问题是什么,当我开始一个新的应用程序,并采取缓慢的事情(一次一件事),它只是工作。我对这种喜怒无常的行为感到沮丧...... – user1637212

+1

对我来说,它是由'eb​​ean.default =“models。*”'配置中的行注释掉的,但在这个问题中,这个键似乎设置正确。为h2设置用户和密码是不必要的,尝试没有它 - 它也可以。 – kolen

14

我在第一篇文章中描述了完全相同的问题。这是奇怪的,于我而言,只是运行

# play 

> clean 
> compile 
> run 

应用开始重新工作

+1

我将Java更新为版本8,这导致我发现未知的常量错误。更新SBT从0.13.0到0.13.1固定。之后,我得到了这个Ebean注册错误,这个错误是用给定的命令修复的。谢谢! – Raidok

+1

令人惊叹的,这是神奇的! – wrongusername

0

的问题是Ebeans配置,一些协会是不正确的。也许你在他们的应用程序模型中改变了某些东西,而没有在Ebean中记录。